L'ultima volta abbiamo parlato di jpegoptim, jpegtran, optipng e pngcrush per l'ottimizzazione delle immagini. Oggi esamineremo ImageMagick. Usa ImageMagick® per creare, modificare, comporre o convertire immagini bitmap. Può leggere e scrivere immagini in una varietà di formati (oltre 200) inclusi PNG, JPEG, GIF, HEIC, TIFF, DPX, EXR, WebP, Postscript, PDF e SVG. Usa ImageMagick per ridimensionare, capovolgere, specchiare, ruotare, distorcere, inclinare e trasformare immagini, regolare i colori delle immagini, applicare vari effetti speciali o disegnare testo, linee, poligoni, ellissi e curve di Bézier.
Installazione di imagemagick
Su Debian, questa utility è inclusa nei pacchetti:
# apt-get install imagemagick
Esempio di utilizzo di imagemagick
GIF e PNG sono formati senza perdita di dati, in quanto il processo di compressione non apporta alcuna modifica visiva alle immagini. Per le immagini fisse, PNG ottiene un migliore rapporto di compressione con una migliore qualità visiva. Per le immagini animate, considera l'utilizzo di un elemento video invece di una GIF, per ottenere una migliore compressione.
- Converti sempre GIF in PNG a meno che l'originale non sia animato o minuscolo (meno di poche centinaia di byte).
- Per GIF e PNG, rimuovi il canale alfa se tutti i pixel sono opachi.
Ad esempio, puoi utilizzare convert binary per ottimizzare le tue immagini GIF e PNG con il seguente comando (i parametri tra parentesi sono facoltativi):
$ convert INPUT.gif_or_png -strip [-resize WxH] [-alpha Remove] OUTPUT.png
cuppa.png (1.763 byte)
$ convert cuppa.png -strip cuppa_converted.png
cuppa_converted.png (856 byte)
JPEG è un formato con perdita di dati. Il processo di compressione rimuove i dettagli visivi dell'immagine, ma il rapporto di compressione può essere 10 volte maggiore di GIF o PNG.
- Riduci la qualità a 85 se fosse superiore. Con una qualità superiore a 85, l'immagine diventa rapidamente più grande, mentre il miglioramento visivo è minimo.
- Riduci il campionamento della crominanza a 4:2:0, perché il sistema visivo umano è meno sensibile ai colori rispetto alla luminanza.
- Utilizza il formato progressivo per immagini superiori a 10.000 byte. Il JPEG progressivo di solito ha un rapporto di compressione più elevato rispetto al JPEG di base per immagini di grandi dimensioni e offre i vantaggi del rendering progressivo.
- Utilizza lo spazio colore in scala di grigi se l'immagine è in bianco e nero.
Ad esempio, puoi utilizzare convert binary per ottimizzare le tue immagini JPEG con il seguente comando (i parametri tra parentesi sono facoltativi):
$ convert INPUT.jpg -sampling-factor 4:2:0 -strip [-resize WxH] [-quality N] [-interlace JPEG] [-colorspace Gray/sRGB] OUTPUT.jpg
puzzle.jpg (13.501 byte)
$ convert puzzle.jpg -sampling-factor 4:2:0 -strip -quality 85 -interlace JPEG -colorspace sRGB puzzle_converted.jpg