Come ottenere pngcrush per sovrascrivere i file originali?


15

Ho letto man pngcrushe sembra che non ci sia modo di schiacciare un file PNG e salvarlo sull'originale. Voglio comprimere diverse cartelle di PNG per cui sarebbe utile fare tutto con un solo comando!

Attualmente sto facendo pngcrush -q -d tmp *.pngquindi incollare manualmente i file dalla tmpdirectory alla cartella originale. Quindi immagino che usare mvpotrebbe essere il modo migliore per andare? Qualche idea migliore?

Risposte:


17

Tutto su una riga:

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

dovrebbe farlo.

(Anche se finora nei miei test, meno della metà dei png su cui ho testato pngcrushsono stati più piccoli in seguito, quindi colorami non impressionato.)


Grazie! L'importo che puoi comprimere i PNG può dipendere da come sono stati realizzati. Credo che "Save for Web" di Photoshop abbia una qualche forma di frantoio PNG integrato.
DisgruntledGoat

La maggior parte dei miei sono stati creati con il comando di importazione di ImageMagick. Evito software commerciale come Photoshop ogni volta che è possibile.
frabjous,

4
usa -brute per una migliore compressione.
Collin Anderson,

1
L' altra risposta è ora migliore con il più recente pngcrush.
Hugo,

22

Dalla versione 1.7.22, pngcrushha un'opzione di sovrascrittura.

Provare

pngcrush -ow file.png

Consulta il log delle modifiche per ulteriori informazioni:

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.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.