Il formato PNG

Il formato PNG (Portable Network Graphics, o formato Ping) è un formato di file grafico bitmap (raster). È stato elaborato nel 1995 per fornire un'alternativa libera al formato GIF, formato proprietario i cui diritti sono detenuti dalla società Unisys (proprietaria dell'algoritmo di compressione LZW), che obbliga ogni editore di software che manipola questo tipo di formato a versare loro delle royalty. Così PNG è anche un acronimo ricorrente per PNG's Not GIF.

Caratteristiche del formato PNG

Il formato PNG permette d'immagazzinare delle immagine in bianco e nero (fino a 16 bit per pixel di profondità di codifica, in True color, fino a 48 bit per pixel di profondità di codifica) nonché delle immagini indicizzate, che usano una paletta di 256 colori. Inoltre supporta la trasparenza per canale alpha, cioè la possibilità di definire 256 livelli di trasparenza, mentre il formato GIF permette di definire solamente un colore della paletta come trasparente. Esso possiede solitamente una funzione di intreccio che permette di visualizzare progressivamente l'immagine.

La compressione proposta con questo formato è una compressione senza perdita (lossless compression) dal 5 al 25% migliore della compressione GIF. Infine PNG imbarca delle informazioni sulla gamma dell'immagine, che rendono possibili una correzione gamma e permettono un'indipendenza rispetto alle periferiche di visualizzazione. Sono ugualmente imbarcati nel file dei meccanismi di correzione degli errori per garantirne l'integrità.

Struttura di un file PNG

Un file PNG è costituito da una firma, che permette di segnalare che si tratta di un file PNG, poi da una serie di elementi detti chunks (in seguito utilizzeremo il termine segmenti). La firma di un file PNG (in notazione decimale) è la seguente: 137 80 78 71 13 10 26 10. La stessa firma in notazione esadecimale è 89 50 4E 47 0D 0A 1A 0A.

Ogni segmento (chunk) è composto da 4 parti:

La dimensione, un numero intero non marcato di 4 byte, che descrive la dimensione del segmento;

Il tipo di segmento (chunk type), un codice di 4 caratteri (4 byte) composti da caratteri ASCII alfanumerici (A-Z, a-z, 65 a 90 e 97 a 122) che permette di qualificare la natura del segmento;

I dati del segmento (chunk data)

Il CRC (cyclic redundancy check), un codice correttore di 4 byte che permette di verificare l'integrità del segmento.

I segmenti possono essere presenti in qualsiasi ordine ma devono cominciare dal segmento di titolo (IHDR chunk) e finire dal segmento finale (IEND chunk). I segmenti principali (detti critical chunks) sono: IHDR Image header; PLTE Palette; IDAT Image data; IEND Image trailer. Gli altri segmenti (detti </i>anciliary chunks</i>) sono: BKGD Background color; CHRM Primary chromaticities and white point; GAMA Image gamma; HIST Image histogram; PHYs Physical pixel dimensions; SBIT Significant bits; TEXt Textual data; TIME Image last-modification time; TRNS Transparency; ZTXt Compressed textual data.

Ulteriori informazioni

Sito del W3C;

Spefiche del formato PNG (versione 1.0);

Sito ufficiale LibPNG.org.

Foto: © Pixabay.

I nostri contenuti sono creati in collaborazione con esperti di high-tech, sotto la direzione di Jean-François Pillou, fondatore di CCM.net. CCM è un sito di high-tech leader a livello internazionale ed è disponibile in 11 lingue.
Potrebbe anche interessarti
Il documento intitolato « Il formato PNG » dal sito CCM (it.ccm.net) è reso disponibile sotto i termini della licenza Creative Commons. È possibile copiare, modificare delle copie di questa pagina, nelle condizioni previste dalla licenza, finché questa nota appaia chiaramente.