Portable Network Graphics

PNG (Portable Network Graphics) é un formato gráfico baseado nun algoritmo de compresión sen perda para bitmaps non suxeito a patentes. Este formato foi desenvolvido en boa parte para liquidar as deficiencias do formato GIF e permite almacenar imaxes cunha maior profundidade de cor e outros importantes datos. Soporta unha paleta de cores de 16 bits, varios niveis de transparencia e emprega compresión sen perda mediante o formato ZIP. É un estándar recomendado polo W3C e recoñecido como estándar ISO (ISO/IEC 15948: 2003). Historia e desenvolvemento
As motivacións para crear o formato PNG xeráronse en 1995, despois de que Unisys anunciase que faría cumprir a patente de software do algoritmo de compresión de datos LZW utilizado polo GIF (patente dos Estados Unidos 4. 558. 302 e outras ao redor do globo). Había outros problemas co formato GIF que facían desexable un cambio, por exemplo a súa limitación a paletas de 8 bits de 256 cores como máximo, cando os computadores xa soportaban miles ou millóns de cores.
Orixinalmente PNG era un acrónimo recursivo que significaba PNG non é GIF (PNG's Not GIF).
Aínda que o GIF soporta animación, o PNG desenvolveuse como un formato de imaxe estático e creouse o formato MNG como a súa variante animada.
O PNG gañou maior popularidade en agosto de 1999 cando Unisys puxo fin á súa política de licenzas de patente libres de dereitos para os desenvolvedores de software libre ou non comercial.
Versións
A versión 1. 0 de PNG foi lanzada o 1 de xullo de 1996 e despois apareceu como RFC 2083. Rapidamente converteuse nunha recomendación W3C o 1 de outubro de 1996
Versión 1. 1 con algúns pequenos cambios e con 3 novas extensións ou "chunks" foi liberada o 31 de decembro de 1998
Versión 1. 2. Nova extensión. Liberada o 11 de agosto de 1999
Actualmente PNG é un estándar internacional (ISO/IEC 15948: 2003), tamén recomendado pola W3C o 10 de novembro de 2003.
O estándar a partir de 2004 é (ISO/IEC 15948: /2004) Detalles técnicos
Cabeceira do ficheiro
Un arquivo PNG empeza cunha firma de 8 bytes, os valores en hexadecimal son: 89504E 470D 0A 1A 0A.
Segmentos do ficheiro
Logo da cabeceira atopamos unha serie de segmentos dos cales cada un garda certa información acerca da imaxe. Os segmentos se autodeclaran como críticos (critical) ou auxiliares (auxiliary) de modo que un programa que atope un segmento auxiliar e non o entenda pode ignoralo sen perigo. A estrutura baseada en segmentos está deseñada para poder ampliar o formato PNG mantendo a compatibilidade con versións antigas.
Seccións esenciais
Un decodificador debe ser capaz de entender estas seccións para ler e renderizar un PNG: IHDR: debe ser a primeira sección, contén a cabeceira.
PLTE: contén a paleta de cores.
IDAT: contén a imaxe que debe ser dividida en múltiples seccións IDAT.
IEND: marca o final da imaxe.
Seccións de metadatos
Outros atributos que poden ser almacenados nun PNG inclúen valores de corrección gamma, cor de fondo e metadatos. PNG además tamén emprega a corrección de cor que usan os sistemas de administración de cor coma o sRGB.
Transparencia na imaxe
PNG ofrece unha gran variedade de opcións de transparencia. Con cor verdadeira ou escala de grises, incluso un só píxel pode ser declarado transparente ou pode engadirse unha canle alfa. Para imaxes que usan paletas pódese engadir unha canle alfa nas entradas da paleta.