JPG, PNG e GIF: cosa usare e perchè
Chiunque abbia avuto modo di creare pagine web avrà avuto anche occasione di usare delle immagini e di sentir parlare di GIF, JPG e PNG, ovvero dei tre possibili formati per le nostre immagini. Che differenza c’è? Vediamola, e cerchiamo anche di sfatare qualche mito.
Formati bitmap e compressi
Partiamo dall’inizio: una immagine è definita come un insieme di pixel, ciascuno di uno specifico colore. Il modo più semplice per codificare una immagine su un computer, quindi, è indicare pixel per pixel il codice numerico corrispondente al relativo colore. Mai usato i CSS? Vi dice niente una codifica tipo #f10265? Ecco, una immagine salvata in formato bitmap è una sequenza numerica che indica, per ciascun pixel, la relativa codifica di colore.
Lungo, vero?
Ecco che sono stati quindi creati dei formati compressi. Sia GIF che PNG che JPG sono formati compressi, ovvero sfruttano degli algoritmi per rendere più piccolo il file. Gli algoritmi per la compressione sono molti, ma possiamo dividerli in due grandi categorie: lossy, ovvero che causano una perdita di informazione, e lossless, ovvero che mantengono tutte le informazioni originali.
JPG: lossy
Il formato JPG è di tipo lossy. Ovvero, quando prendiamo una immagine e la salviamo in formato JPG, l’elaborazione va a fare delle “approssimazioni” (credo che il termine corretto sia interpolazioni) in modo da ottenere quasi lo stesso risultato visivo ma con un file molto più piccolo. Una volta convertita in JPG, una immagine non può più essere riportata in formato bitmap senza perdere qualcosa in qualità. Per la maggior parte delle fotografie, tuttavia, il formato JPG è il miglior compromesso tra qualità e dimensione dell’immagine.
GIF e PNG: lossless
I formati GIF e PNG sono lossless. Ovvero, quando comprimono l’immagine, lo fanno in modo da mantenere comunque tutte le informazioni: un po’ come un file .zip che occupa meno spazio ma – una volta decompresso – ci riporta esattamente il file originale.
In particolare, il PNG è una evoluzione del GIF e lo migliora sotto tanti aspetti, in particolare permette di codificare l’immagine usando una quantità di colori variabile e si comprime meglio. Inoltre, il PNG è un standard aperto e gratuito, mentre sul formato GIF pende una spada di Damocle, legata alla richiesta di royalties da parte degli autori originali.
Il PNG è particolarmente indicato per icone e disegni con elementi geometrici.
Compressione avanzata
Detto di quali siano le tipologie di immagini da codificare preferibilmente in JPG o in PNG, è interessante – in particolare per chi lavora spesso con le immagini – leggere questi due articoli (in inglese) relativi a tecniche di compressione avanzata:
In particolare, mi ha colpito sapere dell’esistenza di tool specifici che realizzano una compressione migliore rispetto alla maggior parte dei comuni programmi di creazione e modifica e immagini. Dopo una rapida ricerca, ho scoperto che pngcrush, ad esempio, è già incluso nei repository di Ubuntu. Per cui l’ho scaricato e lo metterò alla prova sicuramente non appena dovessi avere a che fare con le immagini.
Dario
molto chiaro e utile, grazie!