# Portable Network Graphics

Portable Network Graphics (sigla PNG) è un formato di file utilizzato in informatica per memorizzare immagini, introdotto nel 1995 e caratterizzato da compressione lossless, efficiente soprattutto con grafica non fotografica. Nacque come successore migliorato e libero del formato GIF e divenne un valido esempio di buona qualità di uno standard de facto nel campo del software libero.
Ne esiste un formato derivato, Multiple-image Network Graphics o MNG, ideato nel 2001, che è simile al GIF animato.

## Storia

L'ideazione del PNG avvenne in seguito alla decisione, nel 1994, dei detentori del brevetto dell'allora molto diffuso formato GIF (CompuServe e Unisys), di richiedere il pagamento di royalty per ogni programma che ne facesse uso. La prima reazione della comunità informatica a tale improvviso cambiamento fu la sorpresa, a cui seguì la scelta di indirizzarsi verso lo sviluppo di un'alternativa. Inizialmente infatti la sigla PNG era anche acronimo ricorsivo di "PNG's Not GIF" ("il PNG non è il GIF").
Il PNG è stato creato nel periodo natalizio del 1994 da Thomas Boutell, Greg Roelofs e altri autori indipendenti. Venne sviluppato in tempi brevissimi e praticamente senza costi, in netta contrapposizione con il grande impegno di tempo e denaro di organismi internazionali che stava dietro a formati come il JPEG. A fine gennaio 1995 il formato era definitivo e a marzo Olivier Fromme realizzò il primo programma di visualizzazione. A luglio 1995 il formato era già supportato dal browser Mosaic.
Il formato è stato approvato il 1º ottobre 1996 dal World Wide Web Consortium (W3C), terminando il suo iter nel gennaio 1997 come oggetto del Request for Comments (RFC) 2083.
Nel 1997 i browser Internet Explorer e Netscape Navigator fornirono la visualizzazione nativa delle immagini PNG, comunque leggibili anche con programmi esterni.

## Caratteristiche

Il formato PNG è superficialmente simile al GIF, in quanto è capace di immagazzinare immagini in modo lossless, ossia senza perdere alcuna informazione, ed è più efficiente con immagini non fotorealistiche (che contengono troppi dettagli per essere compresse in poco spazio). Essendo stato sviluppato molto tempo dopo, non ha molte delle limitazioni tecniche del formato GIF: può memorizzare immagini a 24 bit (mentre il GIF era limitato agli 8 bit, 256 colori) e ha un canale dedicato per la trasparenza (canale alfa). Il formato non possiede un meccanismo di simple file verification, tuttavia supporta:
* gestione dei colori classica ad esempio bitmap oppure indicizzata;
* possibilità di trasmettere l'immagine lungo un canale di comunicazione seriale (serializzazione dell'immagine);
* visualizzazione progressiva dell'immagine, grazie all'interlacciamento della medesima;
* supporto alla trasparenza mediante un canale alfa dedicato, ampliando le caratteristiche già presenti nel tipo GIF89a;
* informazioni ausiliarie di qualsiasi natura accluse al file;
* indipendenza dall'hardware e dalla piattaforma in uso;
* compressione dei dati di tipo lossless grazie all'algoritmo deflate;
* immagini truecolor fino a 48 bpp;
* immagini in scala di grigio sino a 16 bpp;
* filtraggio per migliorare le prestazioni della compressione;
* informazioni sulla correzione di gamma dell'immagine;

## Applicazioni e utilizzo

L'utilizzo del PNG è stato inizialmente limitato, a causa del fatto che pochi programmi erano capaci di scrivere o leggere tali immagini. Col tempo, tutti i maggiori programmi di grafica e di navigazione hanno accettato il formato PNG, che ha trovato così più largo utilizzo.

## APNG

Animated Portable Network Graphics (APNG) è un formato di file che estende la specifica PNG per consentire immagini animate che funzionano in modo simile ai file GIF animati, pur supportando immagini a 24 bit e trasparenza a 8 bit. Mantiene inoltre la retro-compatibilità con i file PNG non animati. La specifica APNG è stata creata nel 2004 da Stuart Parmenter e Vladimir Vukićević della Mozilla Corporation per consentire la memorizzazione delle animazioni necessarie per interfacce come i throbber (detti anche "icone di caricamento"). L’APNG supporta fino a 24 bit e quindi oltre 16 milioni di colori, oltre a supportare anche la trasparenza parziale (graduata) in aggiunta a quella totale. Il formato GIF con supporto a 8 bit è limitato a 256 colori e a una trasparenza totale non graduata, il che può causare ombre sgranate e pixellate.

## MNG

Multiple-image Network Graphics (MNG) è un formato di file grafico, pubblicato nel 2001, per immagini animate, Le sue specifiche sono documentate pubblicamente e sono disponibili implementazioni di riferimento free software. MNG è strettamente correlato al formato immagine PNG. Quando lo sviluppo PNG iniziò all'inizio del 1995, gli sviluppatori decisero di non incorporare il supporto per l'animazione, perché la maggior parte degli sviluppatori PNG riteneva che sovraccaricare un singolo tipo di file con funzionalità sia fisse che di animazione fosse una cattiva idea, sia per gli utenti (che non avrebbero avuto un modo per determinare a quale classe appartiene un determinato file di immagine) e per i server Web (che avrebbero dovuto utilizzare un carattere MIME che inizia con image/ per le immagini fisse e video/ per le animazioni, nonostante GIF). Tuttavia iniziarono i lavori su MNG come versione di PNG che supporta l'animazione. La versione 1.0 della specifica MNG è stata rilasciata il 31 gennaio 2001. Il supporto MNG non è mai stato incluso in Google Chrome, Internet Explorer, Opera, Edge o Safari. Mozilla Firefox aveva tale supporto ma lo abbandonò. Gwenview ha il supporto MNG nativo. GIMP può esportare immagini come file MNG. Imagemagick può creare un file MNG da una serie di file PNG. Con il plugin MNG, Irfanview può leggere un file MNG. I server Web generalmente non sono pre-configurati per supportare i file MNG.