Le immagini occupano troppo!
Ciao a tutti!
Spesso e volentieri mi sono trovato di fronte l'ottimizzazione di una cartella media di un sito web, solitamente wordpress o ghost cms.
I miei compagni di avventure sono due comandi da shell, jpegoptim
e optipng
.
Combinando il comando find
con questi due tool, è possibile ridurre la dimensione dei file di un intera cartella e delle sottocartelle.
Di seguito un paio di esempi utili in cui vi spiegherò i vari parametri utilizzati.
Riduzione JPEG
Per ridurre le immagini jpg e jpeg utilizzeremo jpegoptim
.
Installazione
Debian e derivati:
apt-get install jpegoptim
RPM e derivati
yum install epel-release
dnf install epel-release [Fedora 22+]
yum install jpegoptim
dnf install jpegoptim [Fedora 22+]
MacOS
brew install jpegoptim
Uso
Una volta posizionati nella cartella di interesse potremo lanciare il comando con:
find . -name "*.jpeg" -exec jpegoptim --strip-all --all-progressive --size=250k {} \;
In questo comando stiamo passando 3 parametri, e chiedendo al find
di trovare nella cartella corrente e nelle sottocartelle tutti i file che corrispondono a *.jpeg
--strip-all
con questa direttiva vengono eliminati tutti i metadati dell'immagine, come quelli ad esempio che aggiunge un iphone quando si scatta una foto (posizione gps, etc)--all-progressive
Si modifica la compressione da baseline a progressive (qui una buona spiegazione della differenza https://www.liquidweb.com/kb/what-is-a-progressive-jpeg/ )--size=250k
si forza la dimensione massima a 250k
Riduzione PNG
Per questo tipo di riduzione invece, utilizzeremo optipng
.
Installazione
Debian e derivati:
apt-get install optipng
RPM e derivati
yum install epel-release
dnf install epel-release [Fedora 22+]
yum install optipng
dnf install optipng [Fedora 22+]
MacOS
brew install optipng
Uso
Una volta posizionati nella cartella di interesse potremo lanciare il comando con:
find . -name "*.png" -exec optipng -o7 -strip all {} \;
-o7
e' il parametro che indica la quantità di passaggi che vengono fatti per ottimizzare l'immagine. Non entro troppo nel dettaglio ma si riesce ad ottenere una compressione lossless anche del 30%-strip all
come per l'ottimizzazione jpeg, andiamo ad eliminare i metadati
Fonti e approfondimenti: