Diferencia entre revisiones de «Portable Network Graphics (PNG)»

(Compresión)
m (Texto reemplazado: «<div align="justify">» por «»)
(No se muestran 8 ediciones intermedias de 3 usuarios)
Línea 1: Línea 1:
{{Desarrollo}}
+
{{Ficha Software
 
+
|nombre=PNG ('''P'''ortable '''N'''etwork '''G'''raphics)
{{
+
|familia=
Aplicación|nombre=PNG ('''P'''ortable '''N'''etwork '''G'''raphics)
+
|imagen=Pnglogo-blk.jpg
|logo=Png.png
+
|tamaño=
|descripcion='''Extensión de archivo de Imágen'''
+
|descripción='''Extensión de archivo de Imágen'''
 +
|imagen2=
 +
|tamaño2=
 +
|descripción2=
 
|creador=PNG Development Group
 
|creador=PNG Development Group
|fecha_de_creacion=[[1995]]
+
|desarrollador=
|sitio_web=
+
|diseñador=
 +
|modelo de desarrollo=
 +
|lanzamiento inicial=[[1995]]
 +
|versiones=
 +
|última versión estable=
 +
|género=
 +
|sistemas operativos=
 +
|idioma=
 +
|licencia=
 +
|premios=
 +
|web=
 
}}
 
}}
<div align="justify">
+
'''PNG''' ('''P'''ortable '''N'''etwork '''G'''raphics) es un formato gráfico basado en un [[algoritmo]] de compresión sin pérdida para [[bitmaps]] no sujeto a patentes. Este formato fue desarrollado en buena parte para solventar las deficiencias del formato [[GIF]] y permite almacenar imágenes con una mayor profundidad de contraste y otros importantes datos.
 
 
'''PNG''' ('''P'''ortable '''N'''etwork '''G'''raphics) es un formato gráfico basado en un [[algoritmo de compresión sin pérdida]] para [[bitmaps]] no sujeto a patentes. Este formato fue desarrollado en buena parte para solventar las deficiencias del formato [[GIF]] y permite almacenar imágenes con una mayor profundidad de contraste y otros importantes datos.
 
  
 
Las imágenes PNG usan la extensión '''.png''' y han obtenido un tipo MIME (image/png) aprobado el [[14 de octubre]] de [[1996]].
 
Las imágenes PNG usan la extensión '''.png''' y han obtenido un tipo MIME (image/png) aprobado el [[14 de octubre]] de [[1996]].
Línea 44: Línea 55:
 
   <tr>
 
   <tr>
 
     <td> 50&nbsp;4E&nbsp;47 </td>
 
     <td> 50&nbsp;4E&nbsp;47 </td>
     <td> En <a href="http://es.wikipedia.org/wiki/ASCII">ASCII </a>, las letras "PNG" permitiendo que una persona identifique el formato en caso de verlo en un editor de texto. </td>
+
     <td> En [[ASCII]], las letras "PNG" permitiendo que una persona identifique el formato en caso de verlo en un editor de texto. </td>
 
   </tr>
 
   </tr>
 
   <tr>
 
   <tr>
 
     <td> 0D&nbsp;0A </td>
 
     <td> 0D&nbsp;0A </td>
     <td> Una nueva l&iacute;nea con estilo <a href="http://es.wikipedia.org/wiki/DOS">DOS </a> (CRLF) para detectar las conversiones de final de l&iacute;nea entre DOS y UNIX. </td>
+
     <td> Una nueva l&iacute;nea con estilo [[DOS]](CRLF) para detectar las conversiones de final de l&iacute;nea entre DOS y UNIX. </td>
 
   </tr>
 
   </tr>
 
   <tr>
 
   <tr>
Línea 161: Línea 172:
  
 
* PNG es un formato sin perdida de calidad con una excelente compresión, ideal para imágenes formadas por grandes áreas de color plano o con pocas variaciones de color. Admite canal alfa y algunos atributos extra como la corrección gamma.
 
* PNG es un formato sin perdida de calidad con una excelente compresión, ideal para imágenes formadas por grandes áreas de color plano o con pocas variaciones de color. Admite canal alfa y algunos atributos extra como la corrección gamma.
 +
 +
[[Archivo:Gif-vs-png-vs-jpg.png]]
  
 
== PNG en la web ==
 
== PNG en la web ==
Línea 230: Línea 243:
 
* [[PSD]]
 
* [[PSD]]
  
==Fuente==
+
==Fuentes==
 
 
 
* [http://acceso.uv.es/accesibilidad/artics/web/01-png.htm Ventajas del PNG]
 
* [http://acceso.uv.es/accesibilidad/artics/web/01-png.htm Ventajas del PNG]
 
* [http://es.wikipedia.org/wiki/PNG Wikipedia]
 
* [http://es.wikipedia.org/wiki/PNG Wikipedia]
  
 
[[Category:Ciencias_informáticas]]
 
[[Category:Ciencias_informáticas]]

Revisión del 16:24 6 jul 2019

PNG (Portable Network Graphics)
Información sobre la plantilla
Pnglogo-blk.jpg
Extensión de archivo de Imágen
CreadorPNG Development Group
Lanzamiento inicial1995

PNG (Portable Network Graphics) es un formato gráfico basado en un algoritmo de compresión sin pérdida para bitmaps no sujeto a patentes. Este formato fue desarrollado en buena parte para solventar las deficiencias del formato GIF y permite almacenar imágenes con una mayor profundidad de contraste y otros importantes datos.

Las imágenes PNG usan la extensión .png y han obtenido un tipo MIME (image/png) aprobado el 14 de octubre de 1996.

Historia y desarrollo

Las motivaciones para crear el formato PNG se generaron en 1995, después de que la compañía Unisys anunciara que haría cumplir la patente de software del algoritmo de compresión de datos LZW utilizado por el GIF (patente de Estados Unidos 4.558.302 y otras en el resto del mundo). Había otros problemas con el formato GIF que hacían deseable un cambio, por ejemplo su limitación a paletas de 8 bits de 256 colores como máximo, cuando los ordenadores ya soportaban miles o millones de colores.

Originalmente PNG era un acrónimo recursivo que significaba PNG no es GIF (PNG's Not GIF). Aunque GIF soporta animación, el PNG se desarrolló como un formato de imagen estático y se creó el formato MNG como su variante animada.

El PNG ganó mayor popularidad en agosto de 1999 cuando Unisys puso fin a su política de licencias de patente libres de derechos para los desarrolladores de software libre o no comercial.

  • Especificación de la versión 1.0 de PNG fue lanzada el 1 de julio de 1996 y después apareció como RFC 2083. Rápidamente se convirtió en una recomendación W3C el 1 de octubre de 1996
  • Versión 1.1 con algunos pequeños cambios y con 3 nuevas extensiones o "chunks" fue liberada el 31 de diciembre de 1998
  • Versión 1.2. Nueva extensión. Fue liberada el 11 de agosto de 1999
  • Nueva versión, ligeramente diferente de la anterior y con una nueva extensión. Actualmente PNG es un estándar internacional (ISO/IEC 15948:2003), también recomendado por la W3C el 10 de noviembre de 2003.
  • El estándar a partir de 2004 es (ISO/IEC 15948:2004)

Detalles técnicos

Un archivo PNG empieza con una firma de 8 bytes, los valores en hexadecimal son: 89 50 4E 47 0D 0A 1A 0A, los valores decimales son: 137 80 78 71 13 10 26 10; cada valor está ahí por una razón específica.

Byte(s)
Propósito
89 Tiene el bit más alto puesto a 1 para detectar sistemas de transmisión que no soportan datos de 8 bits y para reducir el riesgo de que un fichero de texto sea erróneamente interpretado como PNG.
50 4E 47 En ASCII, las letras "PNG" permitiendo que una persona identifique el formato en caso de verlo en un editor de texto.
0D 0A Una nueva línea con estilo DOS(CRLF) para detectar las conversiones de final de línea entre DOS y UNIX.
1A Un byte que detiene el despliegue del fichero bajo DOS cuando se ha usado el comando TYPE.
0A Una nueva línea en UNIX (LF) para detectar la conversión de final de línea entre DOS y UNIX.

Segmentos del archivo

Después de la cabecera se encuentran una serie de segmentos de los cuales cada uno guarda cierta información acerca de la imagen. Los segmentos se auto declaran como críticos (critical) o auxiliares (ancillary) de modo que un programa que encuentre un segmento auxiliar y no lo entienda puede ignorarlo sin peligro. La estructura basada en segmentos está diseñada para poder ampliar el formato PNG manteniendo la compatibilidad con versiones antiguas.

Cada una de las secciones tiene una cabecera que especifica su tamaño y tipo, inmediatamente seguido de los datos y el checksum de los datos. Las secciones tienen un nombre de 4 letras que es sensible a las mayúsculas. El uso de mayúsculas o minúsculas en dicho nombre provee a los decodificadores de información acerca de las secciones que no son reconocidas.

Si la primera letra es mayúscula esto indica que la sección es esencial, en caso contrario será auxiliar. Las secciones esenciales son necesarias para leer el fichero, si el decodificador encuentra una sección esencial que no reconoce debe abortar la lectura.

En caso de que la segunda letra sea mayúscula esto significará que la sección es pública en la especificación o el registro de secciones para propósitos especiales, en caso contrario será privada (no estandarizada). Este uso de mayúsculas y minúsculas asegura que nunca haya conflictos entre secciones públicas y privadas.

La tercera letra debe estar en mayúsculas para cumplir las especificaciones de PNG y está reservada para futuras expansiones.

La cuarta letra indica si es seguro copiar la sección en caso de que no sea reconocida, en caso de estar en minúsculas es seguro copiar la sección sin importar la cantidad de modificación que haya sufrido el fichero, si es mayúscula solo se deberán copiar si no hay secciones críticas que hayan sufrido modificaciones.

Secciones de metadatos

Otros atributos que pueden ser guardados en una imagen PNG son: valores de gamma, color del fondo e información textual. PNG también soporta corrección de color con el uso de sistemas de manejo del color como sRGB.

  • bKGD: contiene el color de fondo por defecto, se usa cuando no hay un mejor color disponible para mostrar, como en un visor de imágenes pero no en un navegador web.
  • cHRM: balance de blanco.
  • gAMA: específica la gamma.
  • hIST: guarda el histograma o cantidad total de cada color en la imagen.
  • iCCP: perfil ICC de color.
  • iTXt: contiene texto (UTF-8) comprimido o no.
  • pHYs: contiene el tamaño previsto del píxel y/o el ratio de la imagen.
  • sBIT: (bits significativos) indican la exactitud de los colores en la imagen.
  • sPLT: sugiere una paleta para usar en caso de que el rango completo de colores no este disponible.
  • sRGB: indica que se usa el estándar sRBG color space.
  • tEXt: almacena texto que puede ser representado en ISO 8859-1 con un nombre=valor para cada sección.
  • tIME: almacena la fecha de la última modificación.
  • tRNS: contiene información sobre la transparencia. Para imágenes indexadas almacena el canal alpha para una o más paletas, para imágenes en color real y escala de grises almacena la información de un solo píxel que debe ser considerado completamente transparente.
  • zTXt: contiene texto comprimido con los mismos límites que tEXt.

La primera letra en minúsculas de estas secciones indica que no son necesarias en la especificación de PNG, la última letra en minúsculas indica que es seguro copiarlas incluso si la aplicación en cuestión no las entiende.

Otros atributos que pueden ser almacenados en un PNG incluyen valores de corrección gamma, color de fondo y metadatos. PNG además también utiliza la corrección de color que utilizan los sistemas de administración de color como el sRGB. Algunos programas como Adobe Photoshop disponen de este sistema.

Profundidad de color

Las imágenes en formato PNG pueden ser imágenes de paleta indexada o estar formadas por uno o varios canales. Si existe más de un canal, todos los canales tienen el mismo número de bits por pixel (también llamado profundidad de bits por canal). Aunque en la especificación oficial del PNG se nombre la profundidad de bits por canal, normalmente los programas de edición nombran sólo la cantidad total de bits por pixel, es decir, la profundidad de color.

El número de canales depende de si la imagen es en escala de grises o en color y si dispone de canal alfa (también llamado canal de transparencia). La combinaciones permitidas por PNG son:

  • Escala de grises (1 canal).
  • Escala de grises y canal alfa (2 canales).
  • Canales rojo, verde y azul (RGB, 3 canales, también llamado color verdadero o Truecolor).
  • Canales rojo, verde, azul y alfa (RGB + alfa, 4 canales).

Por otra parte, las imágenes indexadas disponen de un tope de 256 colores como máximo. Esta paleta de colores está almacenada con una profundidad de canal de 8 bits. La paleta no puede tener más colores que los marcados por la profundidad de bits, es decir 28=256 colores, aunque sí puede tener menos (por ejemplo, una imagen de 50 colores sólo almacenará 50 entradas, evitando almacenar datos que no son utilizados).

Rango total.jpg

La tabla expuesta a la derecha indican la profundidad de color para cada formato de imagen que soporta PNG. Ésta se extrae de la profundidad de bits por canal y se multiplica por el número de canales. Las casillas en rojo representan combinaciones no soportadas. El estándar requiere que los decodificadores puedan leer todos los formatos disponibles, pero muchos editores de imagen sólo pueden generar un pequeño subconjunto de ellos.

Secciones esenciales

Un decodificador debe ser capaz de entender estas secciones para leer y renderizar un PNG:

  • IHDR, debe ser la primera sección, contiene la cabecera.
  • PLTE, contiene la paleta (lista de colores).
  • IDAT, contiene la imagen que debe ser dividida en múltiples secciones IDAT, haciendo esto se incrementa el tamaño de la imagen ligeramente pero hace posible generar imágenes PNG en streaming.
  • IEND, marca el final de la imagen.

Transparencia en la imagen

PNG ofrece una gran variedad de opciones de transparencia. Con color verdadero o escala de grises, incluso un solo píxel puede ser declarado transparente o puede añadirse un canal alfa. Para imágenes que usan paletas se puede añadir un canal alfa en las entradas de la paleta. El número de dichos valores almacenados puede ser menor que el total de entradas en la paleta, de modo que el resto de las entradas se considerarán completamente opacas.

La búsqueda de pixels con transparencia binaria debe hacerse antes de cualquier reducción de color para evitar que algunos pixels se conviertan en transparentes accidentalmente.

Compresión

El método de compresión utilizado por el PNG es conocido como deflación (en inglés "Deflate algorithm"). También existen métodos de filtrado. En la especificación 1.2 se define un único tipo de filtro, que incluye 5 modos de predicción del valor del pixel, que resulta muy útil para mejorar la compresión, donde se elige para cada línea de la imagen (scanline) un método de filtrado que predice el color de cada píxel basándose en los colores de los píxeles previos y resta al color del píxel actual, el color pronosticado. Los cinco métodos son: None, Sub, Up, Average y Paeth.

Estos filtros pueden reducir notablemente el tamaño final del archivo, aunque depende en gran medida de la imagen de entrada. El algoritmo de compresión puede encargarse de la adecuada elección del método que mayor reducción ofrezca.

El tipo de media MIME para PNG es "image/png" (aprobado el 14 de octubre de 1996).

Imágen PNG con un fondo transparente.

Animación

APNG es un formato basado en PNG que soporta animación. APNG soporta el visionado de una sola imagen en caso de que el decodificador no entienda este formato. Es aceptado por Firefox y tiene extensión .png. MNG es un formato de imagen que soporta animación y está basado en las ideas y en algunas secciones de PNG, pero es un sistema complejo y no permite el visionado de una sola imagen cosa que si hace GIF y APNG.

Comparación técnica con otros formatos

Comparación con GIF

  • En la mayoría de los casos, PNG comprime mejor que el formato GIF, aunque algunas implementaciones (véase Photoshop) realizan una mala selección de los métodos de filtrado y se generan ficheros de mayor tamaño.
  • El PNG admite, al igual que el GIF, imágenes indexadas con transparencia de 1 bit o "binaria". Este tipo de transparencia no requiere de un canal adicional y únicamente admite que un color de la paleta aparezca transparente al 100%.
  • El PNG admite formatos con una profundidad de color de millones de colores (color verdadero) y canal alfa, lo que proporciona unos rangos de color mucho más ricos y precisos que el GIF y disponer de valores de transparencia intermedios. Lamentablemente, esto permite que se compare de forma errónea PNGs de color verdadero con un GIF de color indexado (256 colores).
  • GIF soporta animación y PNG no. (ver sección de animación, arriba).

Comparación con JPEG

PNG y JPEG son formatos que están diseñados para funciones diferentes, por lo que únicamente se puede realizar una comparación generalista:

  • JPEG tiene una relación de compresión enorme en perjuicio de la calidad de la imagen, ideal para imágenes de gran tamaño y fotografías. No admite trasparencia.
  • PNG es un formato sin perdida de calidad con una excelente compresión, ideal para imágenes formadas por grandes áreas de color plano o con pocas variaciones de color. Admite canal alfa y algunos atributos extra como la corrección gamma.

Gif-vs-png-vs-jpg.png

PNG en la web

Pese a que las carácteristicas técnicas y de compresión hacen del PNG un formato ideal para sustituir al GIF, su adopción ha sido muy lenta debido en parte a comparaciones erróneas y algunas desventajas técnicas:

  • No está soportado por algunos navegadores muy viejos (sin embargo estos navegadores son muy raros hoy en día).
  • La administración de color fallaba en algunos navegadores (actualmente no es muy importante y se puede evitar).

Ventajas del formato gráfico PNG

El algoritmo de compresión LZW que utiliza el popular formato gráfico GIF es propiedad de la empresa Unisys. Aunque el formato GIF está patentado esto no impide que sea el formato gráfico más utilizado en Internet para ilustrar las páginas web.

Existe una polémica en Internet porque la empresa Unisys ha expresado su intención de perseguir el uso de imágenes GIF creadas desde programas que no tengan una licencia adecuada para su creación. Dicha licencia debe haber sido comprada previamente a Unisys por los desarrolladores de la aplicación que crea o usa este tipo de archivos gráficos.

Es altamente improbable que esta situación llegue a afectar a los diseñadores particulares e incluso a los profesionales y a los responsables de sitios web empresariales. Sin embargo, este es uno de los motivos para empezar a usar el nuevo formato PNG.

PNG frente a GIF

La especificación del formato PNG fue publicada oficialmente en octubre de 1996 por el World Wide Web Consortium ( Sitio Web). Al igual que el resto de productos de este consorcio internacional, el PNG es una especificación de libre uso que no requiere pagar licencia de ningún tipo en aplicaciones que usen, creen o editen este tipo de imágenes.

El formato PNG permite generar imágenes de mapas de bits con una elevada 'ratio' de compresión de tamaño. Se trata de una compresión sin pérdida de calidad, al igual que el formato GIF, pero con mayor porcentaje de compresión media.

Análogamente al GIF, el PNG soporta los fondos transparentes que permiten una buena integración de la imagen con el fondo actual de la página web. PNG es superior a GIF porque soporta una profundidad de color de hasta 16,7 millones de colores. GIF admite sólo un máximo de 256 colores distintos en la misma imagen.

Más ventajas de PNG.

PNG posee dos modos de compresión: estándar y progresivo. Este último facilita el reconocimiento de la imagen en los primeros instantes de la descarga de Internet, pues va mostrando líneas de la misma distribuidas por toda la superficie disponible. Se trata de una opción interesante cuando son imágenes muy grandes o se usan conexiones lentas.

La inclusión de 'metadatos' en el archivo PNG permite en teoría que los motores de búsqueda puedan indexar estos archivos gráficos en función de la descripción incluida, en lugar de únicamente por el nombre.

Navegadores y editores gráficos.

El formato PNG se reconoce y se muestra correctamente en la mayoría de navegadores actuales.

Se puede comprobar si el navegador usado soporta correctamente el PNG visitando esta URL, donde hay dos ejemplos de imágenes en este formato: [www.conganat.org/iicongreso/comunic/008/png.htm ] En cuanto a la creación y edición de imágenes PNG, se pueden emplear sin problemas los principales editores de imágenes existentes como Adobe Photoshop, Corel Photopaint o Paint Shop Pro.

Desventajas del PNG.

La principal desventaja es que PNG no permite crear pequeñas animaciones como el formato GIF. Existe un formato complementario del W3C llamado MNG que sí que soporta animación pero aun no existe un estándar oficial del mismo.

Al igual que el GIF, al ser PNG un formato sin pérdida de calidad, produce archivos excesivamente grandes para la reproducción de fotografías o cuadros comparados con los equivalentes archivos JPG. Estos últimos pueden reducir considerablemente el tamaño de este tipo de imágenes con una disminución casi inapreciable de la calidad.

Falsas creencias

  • Internet Explorer 6 no soporta PNGs transparentes. Habría que matizar un punto. Internet Explorer 6 e inferiores admiten transparencias binarias como en el GIF, pero fallan al mostrar imágenes con canal alfa. Eso se debe a que el paquete que especifica el canal alfa es opcional (tRNS) según la especificación PNG, sin embargo Internet Explorer 7 sí los admite.
  • Las imágenes en PNG pesan más que los GIF. De nuevo, no es cierto. Esta falsa creencia es debido a que se compara con PNGs mal codificados o de 32 bits con GIFs de 256 colores.

Problemas de color

Algunas versiones de algunos navegadores presentan los valores de corrección gamma incluso cuando no están especificados en el PNG. Navegadores conocidos con problemas de visualización de PNG:

  • Internet Explorer 5.5 y 6.
  • Netscape 7.0 a 7.2.
  • Opera (versiones anteriores a la 7.50).

El efecto final es que el color mostrado en el PNG no coincide con el esquema de color del resto de la página web. Una forma sencilla de evitar esto es volviendo a codificar el PNG truncando ciertos atributos. Algunas utilidades para tal fin:

  • PNGOUT es una utilidad gratuita de DOS que utiliza un algoritmo exclusivo para recomprimir un PNG y reducir el tamaño del fichero al mínimo, sin pérdidas.
  • Superpng, es un plugin gratuito para Photoshop que permite la optimización de ficheros PNG.

Vease también

Fuentes