¿Cómo obtener pngcrush para sobrescribir los archivos originales?

15

Lo he leído man pngcrushy parece que no hay forma de aplastar un archivo PNG y guardarlo sobre el original. ¡Quiero comprimir varias carpetas de PNG, por lo que sería útil hacerlo todo con un solo comando!

Actualmente estoy haciendo pngcrush -q -d tmp *.pngluego manualmente cortar-pegar los archivos desde el tmpdirectorio a la carpeta original. ¿Entonces supongo que usar mvpodría ser la mejor manera de hacerlo? ¿Alguna idea mejor?

Cabra descontento
fuente

Respuestas:

17

Todo en una línea:

for file in *.png; do pngcrush "$file" "${file%.png}-crushed.png" && mv "${file%.png}-crushed.png" "$file"; done

Deberías hacerlo.

(Aunque hasta ahora en mis propias pruebas, menos de la mitad de los pngs que probé pngcrusheran más pequeños después, así que no me impresione).

precioso
fuente
¡Gracias! La cantidad que puede comprimir los PNG puede depender de cómo se hicieron. Creo que "Guardar para Web" de Photoshop tiene algún tipo de trituradora construida en PNG.
DisgruntledGoat
La mayoría de los míos fueron creados con el comando de importación de ImageMagick. Evito software comercial como Photoshop siempre que sea posible.
frabjous
44
use -brute para una mejor compresión.
Collin Anderson el
1
La otra respuesta ahora es mejor con el nuevo pngcrush.
Hugo
22

Desde la versión 1.7.22, pngcrushtiene una opción de sobrescritura.

Tratar

pngcrush -ow file.png

Vea Changelog para más información:

Version 1.7.22  (built with libpng-1.5.6 and zlib-1.2.5)
  Added "-ow" (overwrite) option.  The input file is overwritten and the
    output file is just used temporarily and removed after it is copied
    over the input file..  If you do not specify an output file, "pngout.png"
    is used as the temporary file. Caution: the temporary file must be on
    the same filesystem as the input file.  Contributed by a group of students
    of the University of Paris who were taking the "Understanding of Programs"
    course and wished to gain familiarity with an open-source program.
ene
fuente