Login page

Ottimizzare la compressione dei file png

Spesso mi capita di dover lavorare con tante immagini png, dal momento che le devo archiviare, effettuare dei backup, e non le devo visualizzare tanto spesso, mi conviene tentare di ridurre la loro dimensione il più possibile, però senza perdere in qualità.
Come anche per altri formati, è possibile effettuare diverse ottimizzazioni sulla codifica dei file per tentare di ridurre la dimensione, senza modificare l'immagine, tale procedura è solitamente nota come compressione dati lossless. Sui sistemi Gnu/Linux sono presenti nei repository diversi programmi (disponibili anche su Windows tramite, ad esempio, Cygwin), mentre altri sono disponibili solo su Windows, ma funzionano perfettamente tramite Wine anche sugli altri sistemi operativi.

OptiPNG

Il primo programma che ho scoperto è stato proprio OptiPNG. È mediamente veloce, e fa un buon lavoro. Nei miei casi è stato ing rado di ridurre le dimensioni dell'immagine del 5-10%, a volte anche del 20%. Ovviamente la riduzione di dimensione dipende fortemente dal file immagine stesso.
Esistono versioni del programma sia per Windows, sia per Gnu/Linux, anche se dovrebbe trovarsi nei repository di tutte le maggiori distribuzioni.
Per ottimizzare tutte le immagini png presenti nella propria cartella di lavoro, si può dare il comando optipng *.png.

PngOptimizer

Questo programma dispone di una interfaccia grafica, ma è anche possibile usarlo da linea di comando. Il programma è disponibile solamente per Windows, ma tramite Wine sia l'interfaccia grafica, sia la linea di comando funzionano egregiamente.
Per usare tale programma comodamente sui sistemi GNU/Linux, visto che non richiede una installazione, ho creato il seguente script bash
#!/bin/bash
WINEPREFIX="$HOME/.PNGOptimizerCL" wine /opt/wine/PNGOptimizerCL/PngOptimizerCL.exe "$@"
unset WINEPREFIX
e lo ho piazzato nella cartella /opt/bin, dopodiche ho creato la cartella /opt/wine/PNGOptimizerCL e vi ho scompattato l'archivio scaricato dal sito ufficiale. In questo modo, e senza nemmeno richiamare in modo esplicito Wine, tutti gli utenti possono usare PngOptimizer.
Per ottimizzare tutte le immagini png presenti nella propria cartella di lavoro, si può dare il comando pngoptimizercl -file:"*.png"

truepng

Purtroppo tale programma non è opensource, funziona solo su Windows e non trovo più la fonte dalla quale me lo sono procurato (lo ho da un paio di anni nella mia cassetta degli attrezzi e non ricordo nemmeno come ne sono venuto a conoscenza. Se qualcuno avesse il link me lo notifichi), vi è un articolo molto esaustivo sul suo funzionamento e confronto con altri programmi analoghi.

advdef e advpng

Questi programmi fanno parte della utility AdvanceCOMP , che contiene dei programmi per ottimizzare la compressione di diversi file, tra cui i file png attraverso advdef. Tale collezione di programmi dovrebbe essere presente sulla maggior parte di distribuzioni tramite il pacchetto advancecomp Per ottimizzare tutte le immagini png presenti nella propria cartella di lavoro tramite advdef, si può dare il comando advdef -z *.png Il programma advpng funziona anch'esso da linea di comando nella stessa maniera.

deflopt

Disponibile per Windows, viene redistribuito senza licenza e senza codice sorgente.
Per usare tale programma comodamente sui sistemi GNU/Linux, visto che non richiede una installazione, ho creato il seguente script bash
#!/bin/bash
WINEPREFIX="$HOME/.DeflOpt" wine /opt/wine/DeflOpt/DeflOpt.exe "$@"
unset WINEPREFIX
e lo ho piazzato nella cartella /opt/bin dopodiche ho creato la cartella /opt/wine/DeflOpt.
Per eseguire il programma su tutti i file png presenti nella propria cartella di lavoro, basta dare da terminale il comando deflopt .

Altri programmi

Esistono ancora molti altri programmi che non ho mai provato, come ad esempio zopfli, pngcrush oppure pngout (non libero).

Perdita di informazioni

Tutti i programmi descritti precedentemente dovrebbero applicare solamente ottimizzazioni di tipo lossless, che solitamente non permettono di ridurre in modo drastico la dimensione di un file. Se si è disposti a perdere un po' diq uaità dell'immagine, si può usare il programma pngquant, oppure basato su quest'ultimo, pngnq, che a seconda dell'autore fa un lavoro migliore.

Questo è l'elenco degli articoli di questa categoria:

Ottimizzare la compressione dei file jpg: Ottimizzare la compressione dei file jpg
Ottimizzare la compressione dei file png: Ottimizzare la compressione dei file png