Infotaula de format de fitxerPortable Network Graphics
PNG amb transparència (a sobre). El programari de gràfics sol indicar la transparència en un fons de quadrats blancs i negres
Tipusestàndard ISO, algorisme de compressió sense pèrdua, compressió d'imatge i format de fitxer d'imatge de mapa de bits Modifica el valor a Wikidata
Extensió.png
MIMEimage/png
Codi de tipusPNGf
PNG
Uniform Type Identifierpublic.png
Magic number89 50 4e 47 0d 0a 1a 0a
DesenvolupadorPNG Development Group (donat a W3C)
Versió inicial1 d'octubre de 1996 (1996-10-01)
Extensió dealgorisme de deflació Modifica el valor a Wikidata
Extensió aAPNG, JNG and MNG
EstàndardISO/IEC 15948,[1] IETF RFC 2083
Format obert?
Més informació
Stack ExchangeEtiqueta Modifica el valor a Wikidata
Wiki del format de fitxerPNG Modifica el valor a Wikidata
Lloc weblibpng.org… Modifica el valor a Wikidata

PNG (acrònim de Portable Network Graphics, pronunciat ping) és un format gràfic basat en un algoritme de compressió sense pèrdua per bitmaps no subjecte a patents. Aquest format va ser desenvolupat en bona part per solucionar les deficiències del format GIF i permet emmagatzemar imatges amb una major profunditat de contrast i altres dades importants.

Les imatges PNG utilitzen l'extensió .png i han obtingut un tipus MIME (imatge/png) aprovat el 14 d'octubre de 1996.

Història i desenvolupament

Les motivacions per crear el format PNG es van generar el 1995, després que la companyia Unisys anunciés que faria complir la patent de software de l'algoritme de compressió de dades LZW utilitzat pel GIF (patent dels Estats Units 4.558.302 i altres en la resta del món). Hi havia altres problemes amb el format GIF que feien desitjable un canvi, per exemple la seva limitació a paletes de 8 bits de 256 colors com a màxim, quan els ordinadors ja suportaven milers o milions de colors.

Originalment PNG era un acrònim recursiu que significava PNG no és GIF (PNG’s Not GIF), fent al·lusió a la tradició de sigles recursives de GNU. Encara que GIF suporti animació, el PNG va desenvolupar-se com un format d'imatge estàtic i es va crear el format MNG com la seva variant animada.

El PNG va guanyar més popularitat l'agost de 1999 quan Unisys va posar fi a la seva política de llicenciats de patents lliures de drets pels desenvolupadors de programari lliure o no comercial.

Detalls tècnics

Un arxiu PNG comença com una firma de 8 bytes, els valors en hexadecimals són: 89 50 4E 47 0D 0A 1A 0A, els valors decimals són: 137 80 78 71 13 10 26 10; cada valor és allí per una raó específica.

Byte(s) Propòsit
89 Té el bit més alt, posat a 1 per detectar sistemes de transmissió que no suporten dades de 8 bits i per reduir el risc que un fitxer de text sigui erròniament interpretat com a PNG.
50 4E 47 En ASCII, les lletres "PNG" permetent que una persona identifiqui el format en cas de veure’l en un editor de text.
0D 0A Una nova línia amb estil DOS (CRLF) per detectar les conversions de final de línia entre DOS y UNIX.
1A Un byte que atura el desplegament del fitxer sota DOS quan s'ha utilitzat el comandament TYPE.
0A Una nova línia en UNIX (LF) per detectar la conversió de final de línia entre DOS y UNIX.

Segments de l'arxiu

Després de l'encapçalament es troben una sèrie de segments dels quals cada un guarda certa informació sobre la imatge. Els segments s'auto declaren com crítics (critical) o auxiliars (ancillary) de manera que un programa que troba un segment auxiliar i no l'entén pot ignorar-lo sense perill. L'estructura basada en segments està dissenyada per poder ampliar el format PNG mantenint la compatibilitat amb versions antigues. Cada una de les seccions té un encapçalament que especifica la seva mida i tipus, immediatament seguit de les dades i els checksum de les dades. Les seccions tenen un nom de 4 lletres que és sensible a les majúscules. L'ús de majúscules o minúscules en el nombre esmentat prové dels descodificadors d'informació sobre les seccions que no són reconegudes. Si la primera lletra és majúscula indica que la secció és essencial, en cas contrari serà auxiliar. Les seccions essencials són necessàries per llegir el fitxer, si el descodificador troba una secció essencial que no reconeix ha d'avortar la lectura. En el cas que la segona lletra sigui majúscula, significarà que la secció és pública en especificació o el registre de seccions per propòsits especials, en cas contrari serà privada (no estandarditzada). Aquest ús de majúscules i minúscules assegura que mai hi hagi conflictes entres seccions públiques i privades. La tercera lletra ha d'estar en majúscules per complir les especificacions de PNG i està reservada per futures expansions. La quarta lletra indica si és segur copiar la secció en cas que no sigui reconeguda, en cas d'estar en minúscules és segur copiar la secció sense importar la quantitat de modificació que hagi sofert el fitxer, si és majúscula s'haurà de copiar si no hi ha seccions crítiques que hagin sofert modificacions.

Seccions essencials

Un descodificador ha de ser capaç d'entendre aquestes seccions per llegir i renderitzar un PNG:

Seccions de metadades

Altres atributs que poden ser guardats en una imatge PNG són: valors de gamma, color de fons i la informació textual. PNG també suporta correcció de color amb l'ús de sistemes de maneig del color com sRGB.

La primera lletra en minúscules d'aquestes seccions indiquen que no són necessàries en l'especificació de PNG, L'última lletra en minúscula indica que és segur copiar-les inclús si l'aplicació en qüestió no la té. Altres atributs que poden ser emmagatzemats en un PNG inclouen valors de correcció gamma, color de fons i metadades. PNG a més, també utilitza la correcció de color que utilitzen els sistemes d'administració de color com el sRGB. Alguns programes com Adobe Photshop disposen d'aquest sistema.

Profunditat de color

Les imatges en format PNG poden ser imatges de paleta indexada o estar formades per un o diversos canals. Si existeix més d'un canal, tots els canals tenen el mateix nombre de bits per píxel (també anomenat profunditat de bits per canal). Encara en l'especificació oficial del PNG es nombra la profunditat de bits per canal, normalment els programes d'edició nombren només la quantitat total dels bits per píxel, és a dir, la profunditat de color. El nombre de canals depèn de si la imatge és en escala de grisos o en color i si disposa de canal alfa (també anomenat canal de transparència). Les combinacions permeses per PNG són:

D'altra banda, les imatges indexades disposen d'un màxim de 256 colors. Aquesta paleta de colors està emmagatzemada amb una profunditat de canal de 8 bits. La paleta no pot tenir més colors que els marcadors per la profunditat de bits, és a dir 28=256 colors, encara que en pot tenir menys (per exemple, una imatge de 50 colors només emmagatzemarà 50 entrada, evitant emmagatzemar dades que no són utilitzades.

Transparència en la imatge

PNG ofereix una gran varietat d'opcions de transparència: amb el color vertader o escala de grisos, inclús un sol píxel pot ser declarat transparent o pot afegir-se un canal alfa. Per imatges que utilitzen paletes es poden afegir un canal alfa a les entrades de la paleta. El nombre dels valors esmentats emmagatzemats pot ser menor que el total d'entrades de la paleta, de manera que la resta de les entrades es consideraran completament opaques. La recerca de píxels amb transparència binaria hauria de fer-se abans de qualsevol reducció de color per evitar que alguns píxels es converteixin en transparents accidentalment. A diferència de la transparència oferta per GIF que només pot prendre 2 valors (completament transparent o completament opac), el canal alfa de PNG permet utilitzar major profunditat de bits per aconseguir efectes de semí-transparència, propis d'objectes translúcids. Per exemple, amb una profunditat de 8 bits per transparències es poden aconseguir 28 = 256 graus de transparència, com si es tractés d'un color.

Compressió

El mètode de compressió utilitzat pel PNG és conegut com a deflació (a l'anglès “Deflate algorithm”). També existeixen mètodes de filtratge. En les especificacions de 1’2 es defineix un únic tipus de filtre que inclou 5 modes de predicció del valor del píxel que resulta molt útil de resta al color del píxel actual, el color pronosticat. Els cinc mètodes són None, Sub, Up, Average i Paeth. Aquests filtres poden reduir notablement la mida final de l'arxiu, encara que depèn en gran manera de la imatge d'entrada. L'algoritme de compressió pot encarregar-se de l'adequada elecció de mètodes que ofereixin major reducció. El tipus de media MIME per PNG és “imatge/png” (aprovat el 14 d'octubre de 1996).

Animació

APNG és un format basat en PNG que suporta animació. APNG suporta el visionat d'una sola imatge en cas que el descodificador no entengui aquest format. És acceptat per Firefox i té extensió .png. MNG és un format d'imatge que suporta animació i està basat en les idees i en algunes seccions de PNG, però és un sistema complex i no permet el visionat d'una sola imatge, cosa que si que fa GIF i APNG.

Comparació tècnica amb altres formats

Comparació amb GIF

Comparació amb JPG

PNG I JPEG són formats que estan dissenyats per funcions diferents, així que només se'n pot realitzar una comparació generalista:

PNG a la web

Tot i que les característiques tècniques i de compressió fan del PNG un format ideal per a substituir el GIF, la seva adopció ha estat molt lenta degut en part a comparacions errònies i a alguns desavantatges tècnics. No està suportat per alguns navegadors molt vells (tot i que aquests navegadors són molt poc comuns avui en dia).

Falses creences

Problemes de colors

Algunes versions d'alguns navegadors web presenten els valors de correcció gamma inclús quan estan especificats en el PNG. Navegadors coneguts amb problemes de visualització PNG:

L'efecte final és que el color mostrat en el PNG no coincideix amb l'esquema de color d la resta de la pàgina web. Una forma senzilla d'evitar això és tornant a codificar el PNG truncant certs atributs. Algunes utilitats per a aquest fi: • PNGOUT és una utilitat gratuïta de DOS que utilitza un algoritme exclusiu per recomprimir un PNG y reduir la mida del fitxer al mínim, sense pèrdues. • Superpng, és un plugin gratuït per Photoshop que permet l'optimització de fitxers PNG. • OptiPNG és una utilitat gratuïta de DOS que recomprimeix un PNG, reduint la seva mida sense pèrdues.

Referències

A Wikimedia Commons hi ha contingut multimèdia relatiu a: PNG