Articulo de referencia

PNG

\n[[File:PNG transparency demonstration 1.png|280px]]\n "},"caption":{"wt":"A PNG image of four differently colored [[dice]] with an 8-bit transparency channel, overlaid onto a ...

Portable Network Graphics ( PNG , pronunciado oficialmente / p ɪ ŋ / PING , [ 3 ] [ 4 ] pronunciado coloquialmente / ˌ p ɛ n ˈ / PEE -en- JEE [ 5 ] ) es un formato de archivo de gráficos rasterizados que admite compresión de datos sin pérdida . [ 6 ] PNG se desarrolló como un reemplazo mejorado y no patentado del formato de intercambio de gráficos (GIF).

PNG admite imágenes basadas en paletas (con paletas de colores RGB de 24 bits o RGBA de 32 bits ), imágenes en escala de grises (con o sin canal alfa para transparencia) e imágenes RGB o RGBA a todo color sin paleta. El grupo de trabajo de PNG diseñó el formato para la transferencia de imágenes en Internet , no para gráficos de impresión de calidad profesional; por lo tanto, no admite espacios de color distintos de RGB , como CMYK . Un archivo PNG contiene una sola imagen en una estructura extensible de fragmentos , que codifican los píxeles básicos y otra información, como comentarios textuales y comprobaciones de integridad documentadas en RFC 2083. [ 7 ]

Los archivos PNG tienen la extensión de archivo ".png" y el tipo de medio MIME "image/png" . [ 8 ] PNG se publicó como un RFC informativo 2083 en marzo de 1997 y como el estándar ISO/IEC 15948:2004 en 2004. [ 1 ]

Historia y desarrollo

The motivation for creating the PNG format was the announcement on 28 December 1994 that implementations of the Graphics Interchange Format (GIF) format would have to pay royalties to Unisys due to their patent of the Lempel–Ziv–Welch (LZW) data compression algorithm used in GIF.[9] This led to a flurry of criticism from Usenet users. One of them was Thomas Boutell, who on 4 January 1995 posted a precursory discussion thread on the Usenet newsgroup "comp.graphics" in which he devised a plan for a free alternative to GIF. Other users in that thread put forth many propositions that would later be part of the final file format. Oliver Fromme, author of the popular JPEG viewer QPEG, proposed the PING name, eventually becoming PNG, a recursive acronym meaning PING is not GIF,[10][11] and also the .png extension. Other suggestions later implemented included the deflate compression algorithm and 24-bit color support, the lack of the latter in GIF also motivating the team to create their file format. The group would become known as the PNG Development Group, and as the discussion rapidly expanded, it later used a mailing list associated with a CompuServe forum.[3][12]

The full specification of PNG was released under the approval of World Wide Web Consortium (W3C) on 1 October 1996, and later as RFC 2083 on 15 January 1997. The specification was revised on 31 December 1998 as version 1.1, which addressed technical problems for gamma and color correction. Version 1.2, released on 11 August 1999, added the iTXt chunk as the specification's only change, and a reformatted version of 1.2 was released as a second edition of the W3C standard on 10 November 2003,[13] and as an International Standard (ISO/IEC 15948:2004) on 3 March 2004.[14][1]

Aunque GIF permite animación , inicialmente se decidió que PNG debería ser un formato de imagen única. [ 15 ] En 2001, los desarrolladores de PNG publicaron el formato Multiple-image Network Graphics (MNG), con soporte para animación. MNG logró un soporte moderado en aplicaciones, pero no el suficiente entre los navegadores web convencionales y ningún uso entre diseñadores o editores de sitios web. En 2008, algunos desarrolladores de Mozilla publicaron el formato Animated Portable Network Graphics (APNG) con objetivos similares. APNG es un formato que es compatible de forma nativa con los navegadores web basados ​​en Gecko y Presto y también se usa comúnmente para miniaturas en el sistema PlayStation Portable de Sony (usando la extensión de archivo PNG normal). En 2017, los navegadores basados ​​en Chromium adoptaron el soporte para APNG. En enero de 2020, Microsoft Edge se basó en Chromium , heredando así el soporte para APNG. Con esto, todos los navegadores principales ahora son compatibles con APNG.

El Grupo de Trabajo PNG fue creado por el W3C el 14 de septiembre de 2021 para mantener y desarrollar la especificación PNG. La tercera edición de la especificación PNG, que añade la compatibilidad adecuada con APNG, alto rango dinámico (HDR) y datos Exif , se publicó como primer borrador público de trabajo el 25 de octubre de 2022 [ 16 ] y, finalmente, como Recomendación del W3C el 24 de junio de 2025 [ 17 ] [ 18 ].

Grupo de trabajo de PNG

La especificación PNG original fue elaborada por un grupo ad hoc de expertos y entusiastas de los gráficos por computadora . Las discusiones y decisiones sobre el formato se llevaron a cabo por correo electrónico. Los autores originales que figuran en RFC 2083 son: [ 19 ]

Formato de archivo

La imagen PNG se visualiza con una aplicación de editor hexadecimal para Ubuntu.

Encabezado del archivo

Un archivo PNG comienza con una firma de ocho bytes [ 20 ] (consulte la imagen del editor hexadecimal a la derecha):

"Fragmentos" dentro del archivo

Después del encabezado, viene una serie de fragmentos , [ 21 ] cada uno de los cuales transmite cierta información sobre la imagen. Los fragmentos se declaran como críticos o auxiliares , y un programa que encuentre un fragmento auxiliar que no entienda puede ignorarlo sin problemas. Esta estructura de capa de almacenamiento basada en fragmentos, similar en concepto a un formato contenedor o al IFF de Amiga , está diseñada para permitir que el formato PNG se extienda manteniendo la compatibilidad con versiones anteriores; proporciona compatibilidad hacia adelante , y esta misma estructura de archivo (con diferente firma y fragmentos) se utiliza en los formatos MNG , JNG y APNG asociados.

Un fragmento consta de cuatro partes: longitud (4 bytes, [ 22 ] big-endian ), tipo/nombre del fragmento (4 bytes [ 23 ] ), datos del fragmento (longitud bytes) y CRC (código de redundancia cíclica/suma de verificación; 4 bytes [ 22 ] ). El CRC es un CRC-32 de orden de bytes de red calculado sobre el tipo de fragmento y los datos del fragmento, pero no sobre la longitud.

A los tipos de fragmentos se les asigna un tipo/nombre ASCII de cuatro letras que distingue entre mayúsculas y minúsculas ; compárese con FourCC . El uso de mayúsculas y minúsculas en el nombre (bit 5 del valor numérico del carácter) es un campo de bits que proporciona al decodificador información sobre la naturaleza de los fragmentos que no reconoce.

El uso de mayúsculas y minúsculas en la primera letra indica si el fragmento es crítico o no. Si la primera letra está en mayúscula, el fragmento es crítico; de lo contrario, es secundario. Los fragmentos críticos contienen información necesaria para leer el archivo. Si un decodificador encuentra un fragmento crítico que no reconoce, debe interrumpir la lectura del archivo o mostrar una advertencia al usuario.

El uso de mayúsculas y minúsculas en la segunda letra indica si el fragmento es público (ya sea en la especificación o en el registro de fragmentos públicos de propósito especial) o privado (no estandarizado). Las mayúsculas indican que es público y las minúsculas, que es privado. Esto garantiza que los nombres de fragmentos públicos y privados nunca entren en conflicto (aunque sí podrían existir dos nombres de fragmentos privados).

La tercera letra debe ser mayúscula para cumplir con la especificación PNG. Está reservada para futuras expansiones. Los decodificadores deben tratar un fragmento con una tercera letra minúscula del mismo modo que cualquier otro fragmento no reconocido.

El uso de la cuarta letra indica si el fragmento puede copiarse sin problemas por editores que no lo reconocen. Si está en minúscula, el fragmento puede copiarse sin problemas, independientemente de las modificaciones realizadas al archivo. Si está en mayúscula, solo puede copiarse si las modificaciones no han afectado a ningún fragmento crítico.

Fragmentos críticos

Un decodificador debe ser capaz de interpretar fragmentos críticos para leer y renderizar un archivo PNG.

  • IHDRdebe ser el primer fragmento; tiene 13 bytes de datos de longitud y contiene (en este orden) la imagen.
    • ancho (4 bytes)
    • altura (4 bytes)
    • Profundidad de bits (1 byte, valores 1, 2, 4, 8 o 16): como se indica en el Consorcio World Wide Web , la profundidad de bits se define como "el número de bits por muestra o por índice de paleta (no por píxel)". [ 13 ]
    • Tipo de color (1 byte, valores 0, 2, 3, 4 o 6)
    • Método de compresión (1 byte, valor 0)
    • Método de filtro (1 byte, valor 0)
    • Método de entrelazado (1 byte, valores 0 "sin entrelazado" o 1 " entrelazado Adam7 "). [ 13 ]
  • PLTEContiene la paleta : una lista de colores. Este fragmento es esencial para el tipo de color 3 (color indexado). Es opcional para los tipos de color dos y seis (color verdadero y color verdadero con alfa) y no debe aparecer para los tipos de color 0 y 4 (escala de grises y escala de grises con alfa).
  • IDATContiene la imagen, que puede dividirse en varios fragmentos IDAT. Esta división aumenta ligeramente el tamaño del archivo, pero permite generar un PNG de forma continua. El fragmento IDAT contiene los datos de la imagen propiamente dicha, que constituyen el flujo de salida del algoritmo de compresión. [ 24 ]
  • IENDmarca el final de la imagen; el campo de datos del fragmento IEND tiene 0 bytes/está vacío. [ 25 ]

Fragmentos auxiliares

Otros atributos de imagen que se pueden almacenar en archivos PNG incluyen valores gamma , color de fondo e información de metadatos textuales . PNG también admite la gestión del color mediante la inclusión de perfiles de color ICC . [ 26 ]

  • bKGDProporciona el color de fondo predeterminado. Está pensado para usarse cuando no hay una mejor opción disponible, como en visores de imágenes independientes (pero no en navegadores web; consulte más abajo para obtener más detalles).
  • cHRMProporciona las coordenadas de cromaticidad de los colores primarios de la pantalla y el punto blanco .
  • cICPEspecifica el espacio de color, la función de transferencia y los coeficientes de la matriz según se definen en ITU-T H.273 . [ 27 ] Está diseñado para usarse con imágenes HDR sin necesidad de un perfil de color. [ 28 ]
  • dSIGes para almacenar firmas digitales. [ 29 ]
  • eXIfAlmacena metadatos Exif . [ 30 ] [ 31 ]
  • gAMAespecifica gamma . El fragmento gAMA contiene solo 4 bytes, y su valor representa el valor gamma multiplicado por 100 000; por ejemplo, el valor gamma 1/3,4 se calcula como 29411,7647059 ((1/3,4)*(100 000)) y se convierte a un entero (29412) para su almacenamiento. [ 32 ]
  • hISTPuede almacenar el histograma, o la cantidad total de cada color en la imagen.
  • iCCPes un perfil de color ICC .
  • iTXtContiene una palabra clave y texto UTF-8 , con codificaciones para posible compresión y traducciones marcadas con la etiqueta de idioma . La Plataforma de Metadatos Extensibles (XMP) utiliza este fragmento con la palabra clave 'XML:com.adobe.xmp'.
  • pHYsContiene el tamaño de píxel previsto (o relación de aspecto del píxel); el pHYs contiene "Píxeles por unidad, eje X" (4 bytes), "Píxeles por unidad, eje Y" (4 bytes) y "Especificador de unidad" (1 byte) para un total de 9 bytes. [ 33 ]
  • sBIT(bits significativos) indica la precisión del color de los datos de origen; este bloque contiene un total de entre 1 y 5 bytes, dependiendo del tipo de color. [ 34 ] [ 35 ] [ 36 ]
  • sPLTSugiere una paleta de colores para usar si no se dispone de la gama completa de colores.
  • sRGBindica que se utiliza el espacio de color sRGB estándar; el fragmento sRGB contiene solo 1 byte, que se utiliza para la "intención de renderizado" ( se definen 4 valores 0, 1, 2 y 3 — para la intención de renderizado). [ 37 ]
  • sTERFragmento indicador de imagen estéreo para imágenes estereoscópicas . [ 38 ]
  • tEXtPuede almacenar texto que se puede representar en ISO/IEC 8859-1 , con un par clave-valor para cada fragmento. La clave debe tener entre uno y 79 caracteres. El separador es un carácter nulo. El valor puede tener cualquier longitud, desde cero hasta el tamaño máximo de fragmento permitido menos la longitud de la palabra clave y el separador. Ni la clave ni el valor pueden contener caracteres nulos. Tampoco se permiten espacios iniciales ni finales.
  • tIMEAlmacena la hora en que se modificó la imagen por última vez.
  • tRNSContiene información de transparencia. Para imágenes indexadas, almacena los valores del canal alfa para una o más entradas de la paleta. Para imágenes en color verdadero y en escala de grises, almacena un único valor de píxel que se considera totalmente transparente.
  • zTXtcontiene texto comprimido (y un marcador de método de compresión) con los mismos límites que tEXt.

Formato de píxeles

En las imágenes PNG, los píxeles son números que pueden ser índices de datos de muestra en la paleta o los propios datos de muestra. La paleta es una tabla independiente contenida en el fragmento PLTE. Los datos de muestra de un solo píxel consisten en una tupla de entre uno y cuatro números. Tanto si los datos del píxel representan índices de la paleta como valores de muestra explícitos, los números se denominan canales y cada número de la imagen se codifica con un formato idéntico.

Los formatos permitidos codifican cada número como un entero sin signo utilizando una cantidad fija de bits, denominada profundidad de bits en la especificación PNG . Cabe destacar que esto no es lo mismo que la profundidad de color , que se usa comúnmente para referirse a la cantidad total de bits en cada píxel, no en cada canal. Las profundidades de bits permitidas se resumen en la tabla junto con la cantidad total de bits utilizados para cada píxel.

El número de canales depende de si la imagen es en escala de grises o en color y de si tiene un canal alfa . PNG permite las siguientes combinaciones de canales, denominadas tipo de color .

El tipo de color se especifica como un valor de 8 bits; sin embargo, solo se utilizan los tres bits menos significativos y, aun así, solo se permiten las cinco combinaciones mencionadas anteriormente. Siempre que el tipo de color sea válido, puede considerarse como un campo de bits, tal como se resume en la tabla adjunta:

  • Valor de bit 1: los datos de la imagen almacenan índices de paleta. Esto solo es válido en combinación con el valor de bit 2;
  • valor de bit 2: las muestras de imagen contienen tres canales de datos que codifican colores tricromáticos , de lo contrario las muestras de imagen contienen un canal de datos que codifica la luminancia relativa ,
  • Valor de bit 4: las muestras de imagen también contienen un canal alfa expresado como una medida lineal de la opacidad del píxel. Esto no es válido en combinación con el valor de bit 1.

With indexed color images, the palette always stores trichromatic colors at a depth of 8 bits per channel (24 bits per palette entry). Additionally, an optional list of 8-bit alpha values for the palette entries may be included; if not included, or if shorter than the palette, the remaining palette entries are assumed to be opaque. The palette must not have more entries than the image bit depth allows for, but it may have fewer (for example, if an image with 8-bit pixels only uses 90 colors then it does not need palette entries for all 256 colors). The palette must contain entries for all the pixel values present in the image.

The standard allows indexed color PNGs to have 1, 2, 4 or 8 bits per pixel; grayscale images with no alpha channel may have 1, 2, 4, 8 or 16 bits per pixel. Everything else uses a bit depth per channel of either 8 or 16. The combinations this allows are given in the table above. The standard requires that decoders can read all supported color formats, but many image editors can only produce a small subset of them.

Transparency of image

PNG offers a variety of transparency options. With true-color and grayscale images either a single pixel value can be declared as transparent or an alpha channel can be added (enabling any percentage of partial transparency to be used). For paletted images, alpha values can be added to palette entries. The number of such values stored may be less than the total number of palette entries, in which case the remaining entries are considered fully opaque.

The scanning of pixel values for binary transparency is supposed to be performed before any color reduction to avoid pixels becoming unintentionally transparent. This is most likely to pose an issue for systems that can decode 16-bits-per-channel images (as is required for compliance with the specification) but only output at 8 bits per channel (the norm for all but the highest end systems).

Alpha storage can be "associated" ("premultiplied") or "unassociated", but PNG standardized[39] on "unassociated" ("non-premultiplied") alpha, which means that imagery is not alpha encoded; the emissions represented in RGB are not the emissions at the pixel level. This means that the over operation will multiply the RGB emissions by the alpha, and cannot represent emission and occlusion properly.

Compression

PNG uses a two-stage compression process:

  • pre-compression: filtering (prediction)
  • compression: DEFLATE

PNG utiliza DEFLATE , un algoritmo de compresión de datos sin pérdida no patentado que combina la codificación LZ77 y Huffman . Existen implementaciones de DEFLATE con licencia permisiva , como zlib , ampliamente disponibles.

En comparación con los formatos que utilizan compresión con pérdida , como JPEG, elegir ajustes de compresión más altos puede ralentizar el procesamiento sin reducir significativamente el tamaño del archivo.

Filtración

El método de filtro 0 de PNG puede utilizar los datos de los píxeles A, B y C para predecir el valor de X.
Un archivo PNG con 256 colores, que ocupa solo 251 bytes con el prefiltro, sería más de trece veces más grande.

Antes de aplicar DEFLATE, los datos se transforman mediante un método de predicción: se utiliza un único método de filtro para toda la imagen, mientras que para cada línea de la imagen se elige un tipo de filtro para transformar los datos y hacerlos más compresibles. [ 40 ] El tipo de filtro utilizado para una línea de exploración se antepone a la línea de exploración para permitir la descompresión en línea.

En la especificación PNG actual solo existe un método de filtrado (denominado método 0), por lo que, en la práctica, la única opción es determinar qué tipo de filtro aplicar a cada línea. Este método predice el valor de cada píxel basándose en los valores de los píxeles vecinos anteriores y resta el color predicho del píxel al valor real, como en DPCM . Una línea de imagen filtrada de esta manera suele ser más compresible que la línea de imagen original, especialmente si es similar a la línea anterior, ya que las diferencias con respecto a la predicción generalmente se agrupan alrededor de 0, en lugar de distribuirse entre todos los posibles valores de la imagen. Esto es particularmente importante al relacionar filas separadas, ya que DEFLATE no reconoce que una imagen es una entidad 2D, sino que simplemente ve los datos de la imagen como una secuencia de bytes.

Existen cinco tipos de filtro para el método de filtrado 0; cada tipo predice el valor de cada byte (de los datos de la imagen antes del filtrado) basándose en el byte correspondiente del píxel a la izquierda ( A ), el píxel superior ( B ) y el píxel superior e izquierdo ( C ) o alguna combinación de estos, y codifica la diferencia entre el valor predicho y el valor real. Los filtros se aplican a valores de byte, no a píxeles; los valores de píxel pueden ser de uno o dos bytes, o varios valores por byte, pero nunca cruzan los límites de los bytes. Los tipos de filtro son: [ 41 ]

El filtro Paeth se basa en un algoritmo de Alan W. Paeth . [ 42 ] Compárese con la versión de DPCM utilizada en JPEG sin pérdidas y con la transformada discreta de ondículas que utiliza ventanas de 1 × 2, 2 × 1 o (para el predictor Paeth) 2 × 2 y ondículas de Haar .

La compresión se mejora aún más mediante la selección adaptativa de tipos de filtro para cada línea. Esta mejora, y un método heurístico para implementarla, comúnmente utilizado por el software de escritura PNG, fueron creados por Lee Daniel Crocker , quien probó los métodos en muchas imágenes durante la creación del formato; [ 43 ] la elección del filtro es un componente de la optimización del tamaño del archivo, como se explica más adelante.

Si se utiliza el entrelazado, cada etapa del entrelazado se filtra por separado, lo que significa que la imagen se puede renderizar progresivamente a medida que se recibe cada etapa; sin embargo, el entrelazado generalmente hace que la compresión sea menos efectiva.

Entrelazado

Una ilustración de Adam7 entrelazándose sobre una imagen de 16×16

PNG ofrece un esquema de entrelazado opcional de 2 dimensiones y 7 pasadas : el algoritmo Adam7 . Este es más sofisticado que el esquema de 1 dimensión y 4 pasadas de GIF, y permite que una imagen de baja resolución más nítida sea visible antes en la transferencia, particularmente si se utilizan algoritmos de interpolación como la interpolación bicúbica . [ 44 ]

Sin embargo, el esquema de 7 pasadas tiende a reducir la compresibilidad de los datos más que los esquemas más simples.

Animación

Un archivo APNG (PNG animado) (se muestra como una imagen estática en algunos navegadores web )

El formato PNG básico no admite animación. MNG es una extensión de PNG que sí la admite; fue diseñada por miembros del Grupo PNG. MNG comparte la estructura y los fragmentos básicos de PNG, pero es significativamente más complejo y tiene una firma de archivo diferente, lo que lo hace incompatible con los decodificadores PNG estándar. Esto significa que la mayoría de los navegadores web y aplicaciones nunca admitieron MNG o dejaron de hacerlo.

La complejidad de MNG llevó a la propuesta de APNG por parte de los desarrolladores de la Fundación Mozilla. Está basado en PNG, admite animación y es más simple que MNG. APNG ofrece una alternativa para la visualización de una sola imagen para los decodificadores PNG que no admiten APNG. Hoy en día, el formato APNG es compatible con todos los principales navegadores web. [ 45 ] APNG es compatible con Firefox 3.0 y versiones posteriores, Pale Moon (todas las versiones) y Safari 8.0 y versiones posteriores. [ 46 ] Chromium 59.0 agregó compatibilidad con APNG, [ 47 ] [ 48 ] seguido por Google Chrome. Opera admitió APNG en las versiones 10–12.1, pero la compatibilidad caducó en la versión 15 cuando cambió al motor de renderizado Blink ; la compatibilidad se volvió a agregar en Opera 46 (heredado de Chromium 59). [ 49 ] Microsoft Edge ha admitido APNG desde la versión 79.0, cuando cambió a un motor basado en Chromium.

El Grupo PNG decidió en abril de 2007 no adoptar APNG. [ 50 ] Se discutieron varias alternativas, incluyendo ANG, aNIM/mPNG, "PNG en GIF" y su subconjunto "RGBA en GIF". [ 51 ] Sin embargo, actualmente solo APNG cuenta con un amplio respaldo.

Con el lanzamiento de la tercera edición de la especificación PNG en junio de 2025, ahora mantenida por el grupo de trabajo PNG, [ 16 ] APNG finalmente se incorpora a la especificación como una extensión. [ 52 ]

Ejemplos

Se muestra al estilo de los editores hexadecimales , con los valores de bytes en formato hexadecimal a la izquierda y sus caracteres equivalentes de ISO-8859-1 a la derecha, con los caracteres de control y no reconocidos reemplazados por puntos. Los desplazamientos 8 y 9 del fragmento IDAT representan el encabezado de 2 bytes requerido por el formato de datos zlib. El desplazamiento 16 (del mismo fragmento) representa el pie de página de 4 bytes requerido por el mismo formato. Además, la firma PNG y los fragmentos individuales están marcados con colores. Cabe destacar que son fáciles de identificar debido a sus nombres de tipo legibles (en este ejemplo, PNG, IHDR, IDAT e IEND).

Ventajas

Razones para usar PNG:

  • Portabilidad : La transmisión es independiente de la plataforma de software y hardware.
  • Completitud : es posible representar imágenes en color real, en color indexado y en escala de grises.
  • Codificación y decodificación en serie : permite a los usuarios generar y leer flujos de datos en serie, es decir, el formato del flujo de datos se utiliza para la generación y visualización de imágenes en ese momento a través de la comunicación en serie.
  • Presentación progresiva : poder transmitir flujos de datos que inicialmente son una aproximación de la imagen completa y que mejoran progresivamente a medida que se recibe el flujo de datos.
  • Integridad ante errores de transmisión : detecta correctamente los errores de transmisión del flujo de datos.
  • Sin pérdidas : Sin pérdida de información: el filtrado y la compresión preservan toda la información.
  • Eficiencia : cualquier presentación, compresión y filtrado progresivo de imágenes busca una decodificación y presentación eficientes.
  • Compresión : las imágenes se pueden comprimir de forma eficiente y consistente.
  • Facilidad : la implementación del estándar es sencilla.
  • Intercambiabilidad : cualquier decodificador PNG que cumpla con los estándares puede leer todos los flujos de datos PNG.
  • Flexibilidad : permite futuras ampliaciones y adiciones privadas sin afectar al punto anterior.
  • Libertad de restricciones legales : los algoritmos utilizados son libres y accesibles.

Comparación con otros formatos de archivo

Formato de intercambio de gráficos (GIF)

  • En imágenes pequeñas, el formato GIF puede lograr una mayor compresión que el formato PNG (consulte la sección sobre tamaño de archivo , más abajo).
  • En la mayoría de las imágenes, salvo en el caso mencionado anteriormente, un archivo GIF tiene un tamaño mayor que una imagen PNG indexada.
  • PNG ofrece una gama mucho más amplia de opciones de transparencia que GIF, incluyendo la transparencia del canal alfa .
  • Mientras que GIF se limita a color indexado de 8 bits , PNG ofrece un rango mucho más amplio de profundidades de color, incluyendo color verdadero de 24 bits (8 bits por canal) y 48 bits (16 bits por canal) , lo que permite una mayor precisión de color, transiciones más suaves, etc. [ 55 ] Cuando se agrega un canal alfa, es posible hasta 64 bits por píxel (antes de la compresión).
  • Al convertir una imagen del formato PNG a GIF, la calidad de la imagen puede verse afectada por la posterización si la imagen PNG tiene más de 256 colores.
  • GIF admite imágenes animadas de forma nativa. PNG admite animación solo mediante extensiones (consulte la sección sobre animación , más arriba).

Las imágenes PNG son menos compatibles con los navegadores antiguos. En particular, IE6 tiene una compatibilidad limitada con PNG. [ 56 ]

JPEG

Imagen compuesta que compara la compresión con pérdida en JPEG con la compresión sin pérdida en PNG: los artefactos de JPEG se pueden ver fácilmente en el fondo de este tipo de datos de imagen, mientras que la imagen PNG tiene un color sólido.

El formato JPEG (Joint Photographic Experts Group) puede producir un archivo más pequeño que PNG para imágenes fotográficas (y similares), ya que JPEG utiliza un método de codificación con pérdida diseñado específicamente para datos de imágenes fotográficas, que suelen estar dominados por transiciones suaves y de bajo contraste, y una cantidad de ruido o estructuras irregulares similares. Usar PNG en lugar de un JPEG de alta calidad para dichas imágenes resultaría en un gran aumento del tamaño del archivo con una ganancia de calidad insignificante . En comparación, al almacenar imágenes que contienen texto, dibujos lineales o gráficos (imágenes con transiciones nítidas y grandes áreas de color sólido), el formato PNG puede comprimir los datos de la imagen más que JPEG. Además, PNG no tiene pérdida, mientras que JPEG produce artefactos visuales alrededor de las áreas de alto contraste. (Estos artefactos dependen de la configuración utilizada en la compresión JPG; pueden ser bastante notorios cuando se utiliza una configuración de baja calidad [alta compresión]). Cuando una imagen contiene tanto transiciones nítidas como partes fotográficas, se debe elegir entre ambos efectos. JPEG no admite transparencia.

La compresión con pérdida de JPEG también sufre de pérdida generacional , donde la decodificación y recodificación repetidas de una imagen para guardarla nuevamente provocan una pérdida de información cada vez, degradando la imagen. Dado que PNG no tiene pérdida, es adecuado para almacenar imágenes que se van a editar. Si bien PNG es razonablemente eficiente al comprimir imágenes fotográficas, existen formatos de compresión sin pérdida diseñados específicamente para imágenes fotográficas, como WebP y Adobe DNG (negativo digital). Sin embargo, estos formatos no son ampliamente compatibles o son propietarios. Una imagen se puede almacenar sin pérdida y convertir al formato JPEG solo para su distribución, de modo que no haya pérdida generacional.

Aunque la especificación PNG no incluye explícitamente un estándar para incrustar datos de imagen Exif de fuentes como cámaras digitales, el método preferido para incrustar datos EXIF ​​en un PNG es usar la etiqueta de fragmento auxiliar no crítico eXIf. [ 57 ]

Los primeros navegadores web no admitían imágenes PNG; JPEG y GIF eran los formatos de imagen principales. JPEG se usaba comúnmente para exportar imágenes con degradados a páginas web, debido a la limitada profundidad de color de GIF. Sin embargo, la compresión JPEG provoca que el degradado se vea ligeramente borroso. El formato PNG reproduce un degradado con la mayor precisión posible para una profundidad de bits determinada, manteniendo un tamaño de archivo pequeño. PNG se convirtió en la opción óptima para imágenes con degradados pequeños a medida que mejoró la compatibilidad de los navegadores web con este formato. En los navegadores modernos, no se necesitan imágenes para mostrar degradados, ya que estos se pueden crear mediante CSS .

JPEG-LS

JPEG-LS es un formato de imagen del Joint Photographic Experts Group , aunque mucho menos conocido y compatible que el otro formato JPEG con pérdida mencionado anteriormente. Es directamente comparable con PNG y tiene un conjunto estándar de imágenes de prueba. [ 58 ] En el Waterloo Repertoire ColorSet, un conjunto estándar de imágenes de prueba (no relacionado con el conjunto de prueba de conformidad JPEG-LS), JPEG-LS generalmente tiene un mejor rendimiento que PNG, en un 10-15%, pero en algunas imágenes PNG tiene un rendimiento sustancialmente mejor, del orden del 50-75%. [ 59 ] Por lo tanto, si ambos formatos son opciones y el tamaño del archivo es un criterio importante, ambos deberían considerarse, dependiendo de la imagen.

JPEG XL

JPEG XL is another, much improved, lossless or lossy format, that is supported much less, developed to replace lossless formats like PNG.[60] JPEG XL is more than 50% smaller than JPEG, and that can happen while it's lossless, therefore making it even smaller than PNG.[61] It also supports high dynamic range, wide colour gamuts, and large colour depths.[62] JPEG XL is also very efficient at decoding, and provides smooth transitions from the formats it intends to replace, losslessly able to convert from JPEG. It also excels at compressing without compromising on fidelity.[63]

TIFF

Tag Image File Format (TIFF) is a format that incorporates an extremely wide range of options. While this makes TIFF useful as a generic format for interchange between professional image editing applications, it makes adding support for it to applications a much bigger task and so it has little support in applications not concerned with image manipulation (such as web browsers). The high level of extensibility also means that most applications provide only a subset of possible features, potentially creating user confusion and compatibility issues.

The most common general-purpose, lossless compression algorithm used with TIFF is Lempel–Ziv–Welch (LZW). This compression technique, also used in GIF, was covered by patents until 2003. TIFF also supports the compression algorithm PNG uses (i.e. Compression Tag 000816 'Adobe-style') with medium usage and support by applications. TIFF also offers special-purpose lossless compression algorithms like CCITT Group IV, which can compress bilevel images (e.g., faxes or black-and-white text) better than PNG's compression algorithm.

PNG supports non-premultiplied alpha only[39] whereas TIFF also supports "associated" (premultiplied) alpha.

WebP

WebP is a format invented by Google that was intended to replace PNG, JPEG, and GIF.[64] WebP files allow for both lossy and lossless compression, while PNG only allows for lossless compression. WebP also supports animation, something that only GIF files could previously accomplish.[65]

The main improvements of WebP over PNG, however, are the large reduction in file size and therefore faster loading times when embedded into websites. Google claims that lossless WebP images are 26% smaller than PNG files.[66]

WebP ha recibido críticas por ser incompatible con varios programas de edición de imágenes y sitios web de redes sociales, a diferencia de PNG. [ 67 ] WebP tampoco es compatible con todos los navegadores web, lo que puede obligar a los proveedores de alojamiento de imágenes web a crear una imagen alternativa para mostrar al usuario, anulando así el posible ahorro de almacenamiento de WebP. [ 65 ]

AVIF

AVIF es un formato de imagen desarrollado por la Alliance for Open Media . AVIF fue diseñado por la fundación para compensar las deficiencias de otros códecs de imagen, incluidos PNG, GIF y WebP . [ 68 ]

AVIF es generalmente más pequeño en tamaño que WebP y PNG. [ 69 ] AVIF admite animación mientras que PNG anteriormente no lo hacía. [ 70 ]

Sin embargo, al igual que WebP, AVIF es compatible con menos aplicaciones que PNG. [ 70 ]

Soporte de software

La implementación de referencia oficial del formato PNG es la biblioteca de programación libpng . [ 71 ] Se publica como software libre bajo los términos de una licencia de software libre permisiva . Por lo tanto, suele encontrarse como una biblioteca de sistema importante en los sistemas operativos libres.

Compatibilidad del editor de gráficos de mapa de bits con PNG

El formato PNG es compatible con una amplia gama de programas de diseño gráfico, como Adobe Photoshop , Corel Photo -Paint y Paint Shop Pro , GIMP , GraphicConverter , Helicon Filter , ImageMagick , Inkscape , IrfanView , Pixel image editor, Paint.NET y Xara Photo & Graphic Designer , entre muchos otros (incluidas plataformas de diseño gráfico en línea como Canva ). Algunos programas incluidos en sistemas operativos populares que admiten PNG son Microsoft Paint y Apple Photos / iPhoto y Vista Previa , y GIMP también suele venir incluido en distribuciones populares de Linux .

Adobe Fireworks (anteriormente de Macromedia ) utiliza PNG como formato de archivo nativo, lo que permite que otros editores de imágenes y utilidades de vista previa visualicen la imagen aplanada. Sin embargo, Fireworks también almacena metadatos de capas, animación, datos vectoriales, texto y efectos por defecto. Estos archivos no deben distribuirse directamente. En su lugar, Fireworks puede exportar la imagen como un PNG optimizado sin los metadatos adicionales para su uso en páginas web, etc. [ 72 ]

Compatibilidad de navegadores web con PNG

La compatibilidad con PNG apareció por primera vez en 1997, en Internet Explorer 4.0b1 (solo de 32 bits para NT) y en Netscape 4.04. [ 73 ]

A pesar de los llamamientos de la Free Software Foundation [ 74 ] y el World Wide Web Consortium (W3C), [ 75 ] herramientas como gif2png, [ 76 ] y campañas como Burn All GIFs, [ 77 ] la adopción de PNG en sitios web fue bastante lenta debido a la compatibilidad tardía y defectuosa en Internet Explorer, particularmente en lo que respecta a la transparencia. [ 78 ] PNG es el formato de archivo de imagen más utilizado en la web desde 2018. [ 79 ]

Entre los navegadores compatibles con PNG se incluyen: Apple Safari , Google Chrome , Mozilla Firefox , Opera , Camino , Internet Explorer , Microsoft Edge y muchos otros. Para una comparación completa, consulte Comparación de navegadores web (compatibilidad con formatos de imagen) .

Especialmente las versiones de Internet Explorer (Windows) anteriores a la 9.0 (lanzada en 2011) tenían numerosos problemas que impedían que renderizara correctamente las imágenes PNG. [ 80 ]

  • 4.0 falla en fragmentos PNG grandes. [ 81 ]
  • La versión 4.0 no incluye la funcionalidad para ver archivos .png, [ 82 ] pero hay una corrección en el registro. [ 80 ]
  • Las versiones 5.0 y 5.01 han roto la compatibilidad con OBJECT. [ 83 ]
  • 5.01 imprime imágenes de paleta con fondos negros (o gris oscuro) en Windows 98, a veces con colores radicalmente alterados. [ 84 ]
  • 6.0 no logra mostrar imágenes PNG de 4097 o 4098 bytes de tamaño. [ 85 ]
  • La versión 6.0 no puede abrir un archivo PNG que contenga uno o más fragmentos IDAT de longitud cero. Este problema se solucionó por primera vez en la actualización de seguridad 947864 (MS08-024). Para obtener más información, consulte este artículo en la Base de conocimientos de Microsoft: 947864 MS08-024: Actualización de seguridad acumulativa para Internet Explorer. [ 86 ]
  • 6.0 a veces pierde por completo la capacidad de mostrar PNG, pero hay varias soluciones. [ 87 ]
  • Las versiones 6.0 e inferiores tienen un soporte de transparencia de canal alfa defectuoso (mostrarán el color de fondo predeterminado en su lugar). [ 88 ] [ 89 ] [ 90 ]
  • Las versiones 7.0 e inferiores no pueden combinar la transparencia alfa de 8 bits Y la opacidad del elemento ( CSS – filter: Alpha (opacity=xx)) sin rellenar las secciones parcialmente transparentes con negro. [ 91 ]
  • Las versiones 8.0 e inferiores tienen soporte gamma inconsistente/defectuoso. [ 80 ]
  • Las versiones 8.0 e inferiores no tienen soporte para corrección de color. [ 80 ]

Compatibilidad del sistema operativo con iconos PNG

Los iconos PNG han sido compatibles con la mayoría de las distribuciones de Linux desde al menos 1999, en entornos de escritorio como GNOME . [ 92 ] En 2006, Microsoft Windows introdujo la compatibilidad con iconos PNG en Windows Vista . [ 93 ] Los iconos PNG también son compatibles con AmigaOS 4 , AROS , macOS , iOS y MorphOS . Además, Android hace un uso extensivo de PNG.

Software para optimizar y reducir el tamaño de los archivos

El tamaño de un archivo PNG puede variar significativamente dependiendo de cómo se codifique y comprima; esto se analiza y se ofrecen varios consejos en PNG: La guía definitiva. [ 59 ]

Comparado con GIF

Compared to GIF files, a PNG file with the same information (256 colors, no ancillary chunks/metadata), compressed by an effective compressor is normally smaller than a GIF image. Depending on the file and the compressor, PNG may range from somewhat smaller (10%) to significantly smaller (50%) to somewhat larger (5%), but is rarely significantly larger[59] for large images. This is attributed to the performance of PNG's DEFLATE compared to GIF's LZW, and because the added precompression layer of PNG's predictive filters take account of the 2-dimensional image structure to further compress files; as filtered data encodes differences between pixels, they will tend to cluster closer to 0, rather than being spread across all possible values, and thus be more easily compressed by DEFLATE. However, some versions of Adobe Photoshop, CorelDRAW and MS Paint provide poor PNG compression, creating the impression that GIF is more efficient.[59]

File size factors

PNG files vary in size due to a number of factors:

color depth
Color depth can range from 1 to 64 bits per pixel.
ancillary chunks
PNG supports metadata—this may be useful for editing, but unnecessary for viewing, as on websites.
interlacing
As each pass of the Adam7 algorithm is separately filtered, this can increase file size.[59]
filter
As a precompression stage, each line is filtered by a predictive filter, which can change from line to line. As the ultimate DEFLATE step operates on the whole image's filtered data, one cannot optimize this row-by-row; the choice of filter for each row is thus potentially very variable, though heuristics exist.[note 1]
compression
With additional computation, DEFLATE compressors can produce smaller files.

Existe, por lo tanto, una compensación en el tamaño del archivo entre una alta profundidad de color, metadatos máximos (incluida la información del espacio de color, junto con información que no afecta la visualización), entrelazado y velocidad de compresión, que dan como resultado archivos grandes, con menor profundidad de color, menos o ningún fragmento auxiliar, sin entrelazado y filtrado y compresión optimizados pero computacionalmente intensivos. Para diferentes propósitos, se eligen diferentes compensaciones: un archivo máximo puede ser mejor para archivar y editar, mientras que un archivo simplificado puede ser mejor para usar en un sitio web, y de manera similar, se prefiere una compresión rápida pero deficiente cuando se edita y guarda repetidamente un archivo, mientras que se prefiere una compresión lenta pero alta cuando un archivo es estable: al archivar o publicar. El entrelazado es una compensación: acelera drásticamente la renderización inicial de archivos grandes (mejora la latencia), pero puede aumentar el tamaño del archivo (disminuye el rendimiento) con poca ganancia, particularmente para archivos pequeños. [ 59 ]

Compresión PNG con pérdida

Aunque PNG es un formato sin pérdidas, los codificadores PNG pueden preprocesar los datos de la imagen con pérdidas para mejorar la compresión PNG. Por ejemplo, cuantificar un PNG de color verdadero a 256 colores permite utilizar el tipo de color indexado para una probable reducción del tamaño del archivo. [ 94 ]

software de edición de imágenes

Algunos programas son más eficientes que otros al guardar archivos PNG; esto se debe a la implementación de la compresión PNG utilizada por el programa.

Muchos programas de diseño gráfico (como Vista Previa de Apple ) guardan archivos PNG con gran cantidad de metadatos y datos de corrección de color que, por lo general, son innecesarios para la visualización web . Los archivos PNG no optimizados de Adobe Fireworks también son conocidos por este problema, ya que incluyen opciones para editar la imagen en editores compatibles. Asimismo, CorelDRAW (al menos la versión 11) a veces genera archivos PNG que no pueden abrirse con Internet Explorer (versiones 6 a 8).

El rendimiento de Adobe Photoshop con archivos PNG ha mejorado en la suite CS al utilizar la función Guardar para web (que también permite el uso explícito de PNG/8).

Adobe Fireworks guarda archivos PNG de mayor tamaño que muchos otros programas por defecto. Esto se debe a la mecánica de su formato de guardado : las imágenes generadas por la función de guardado de Fireworks incluyen grandes fragmentos privados que contienen información completa de capas y vectores. Esto permite una edición sin pérdida de calidad. Al guardar con la opción Exportar , los PNG de Fireworks son comparables a los generados por otros editores de imágenes, pero ya no se pueden editar como nada más que mapas de bits planos. Fireworks no puede guardar PNG editables con vectores y optimizados para un tamaño determinado.

Otros ejemplos notables de compresores PNG deficientes incluyen:

  • Paint de Microsoft para Windows XP
  • Microsoft Picture It! Photo Premium 9

Una compresión deficiente aumenta el tamaño del archivo PNG, pero no afecta la calidad de la imagen ni la compatibilidad del archivo con otros programas.

Cuando la profundidad de color de una imagen en color verdadero se reduce a una paleta de 8 bits (como en GIF), los datos de imagen resultantes suelen ser mucho más pequeños. Por lo tanto, un PNG en color verdadero suele ser más grande que un GIF con color reducido, aunque PNG podría almacenar la versión con color reducido como un archivo con paleta de tamaño comparable. Por el contrario, algunas herramientas, al guardar imágenes como PNG, las guardan automáticamente en color verdadero, incluso si los datos originales solo usan color de 8 bits, lo que aumenta innecesariamente el tamaño del archivo. [ 59 ] Ambos factores pueden llevar a la idea errónea de que los archivos PNG son más grandes que los archivos GIF equivalentes.

Herramientas de optimización

Existen diversas herramientas para optimizar archivos PNG; lo hacen de la siguiente manera:

  • (opcionalmente) eliminar fragmentos auxiliares,
  • reduciendo la profundidad del color , ya sea:
    • utilice una paleta (en lugar de RGB) si la imagen tiene 256 colores o menos,
    • utilice una paleta más pequeña, si la imagen tiene 2, 4 o 16 colores, o
    • (opcionalmente) descartar con pérdida algunos de los datos de la imagen original,
  • optimizar la elección del filtro línea por línea y
  • Optimización de la compresión DEFLATE.

Lista de herramientas

  • pngcrush es el optimizador de PNG más antiguo y popular. Permite realizar múltiples pruebas con diferentes filtros y parámetros de compresión, y finalmente elige el que ofrece el menor rendimiento. Este modelo de funcionamiento se utiliza en casi todos los optimizadores de PNG.
  • advpng y la utilidad similar advdef del paquete AdvanceCOMP recomprimen el IDAT PNG. Se aplican diferentes implementaciones de DEFLATE según el nivel de compresión seleccionado, buscando un equilibrio entre velocidad y tamaño de archivo: zlib en el nivel 1, libdeflate en el nivel 2, LZMA DEFLATE de 7-zip en el nivel 3 y zopfli en el nivel 4.
  • pngout se creó con el deflater propio del autor (similar a su utilidad zip, kzip), manteniendo todas las funciones de reducción/filtrado de color. Sin embargo, pngout no permite realizar varias pruebas de filtros en una sola ejecución. Se recomienda usar su versión comercial con interfaz gráfica, pngoutwin, o bien utilizar un wrapper para automatizar las pruebas o recomprimir usando su propio deflater, manteniendo el filtro línea por línea. [ nota 2 ]
  • zopflipng también se creó con su propio desinflador, zopfli. Tiene todas las funciones de optimización de pngcrush (incluida la automatización de pruebas) a la vez que proporciona un desinflador muy bueno, aunque lento.

A continuación se presenta una sencilla comparación de sus características.

Antes de zopflipngque estuviera disponible, una buena manera en la práctica de realizar una optimización png es usar una combinación de 2 herramientas en secuencia para una compresión óptima: una que optimiza los filtros (y elimina los fragmentos auxiliares) y otra que optimiza DEFLATE. Aunque pngout ofrece ambas, solo se puede especificar un tipo de filtro en una sola ejecución, por lo tanto, se puede usar con una herramienta de envoltura o en combinación con pngcrush , [ nota 2 ] actuando como un re-deflador, como advdef.

Eliminación de fragmentos auxiliares

Para eliminar fragmentos auxiliares, la mayoría de las herramientas de optimización de PNG tienen la capacidad de eliminar todos los datos de corrección de color de los archivos PNG (gamma, balance de blancos, perfil de color ICC, perfil de color RGB estándar). Esto suele resultar en tamaños de archivo mucho más pequeños. Por ejemplo, las siguientes opciones de línea de comandos logran esto con pngcrush:

pngcrush -rem gAMA -rem cHRM -rem iCCP -rem sRGB Archivodeentrada.pngArchivodesalida.png

Optimización de filtros

pngcrush, pngout, y zopflipngtodas ofrecen opciones que aplican uno de los tipos de filtro 0–4 globalmente (usando el mismo tipo de filtro para todas las líneas) o con un "pseudofiltro" (numerado 5), que para cada línea elige uno de los tipos de filtro 0–4 usando un algoritmo adaptativo. zopflipngofrece 3 métodos adaptativos diferentes, incluyendo una búsqueda por fuerza bruta que intenta optimizar el filtrado. [ nota 7 ]

pngouty zopflipngproporcionar una opción para preservar/reutilizar [ nota 2 ] [ nota 8 ] el conjunto de filtros línea por línea presente en la imagen de entrada.

pngcrushy zopflipngofrece opciones para probar diferentes estrategias de filtrado en una sola ejecución y elegir la mejor. La versión gratuita de línea de comandos pngoutno ofrece esto, pero la versión comercial pngoutwinsí. [ nota 9 ]

Optimización DEFLATE

Zopfli y el SDK de LZMA proporcionan implementaciones de DEFLATE que pueden generar índices de compresión superiores a los de la implementación de referencia de zlib , aunque a costa de un menor rendimiento. AdvanceCOMP advpngpuede advdefutilizar cualquiera de estas bibliotecas para recomprimir archivos PNG. Además, PNGOUT incluye su propia implementación propietaria de DEFLATE.

advpngNo tiene opción para aplicar filtros y siempre usa el filtro 0 globalmente (dejando los datos de la imagen sin filtrar); por lo tanto, no debe usarse cuando la imagen se beneficia significativamente del filtrado. Por el contrario, advdefdel mismo paquete no maneja la estructura PNG y actúa solo como un descompresor, conservando cualquier configuración de filtro existente.

Optimización de iconos

Dado que los iconos destinados a Windows Vista y versiones posteriores pueden contener subimágenes PNG, las optimizaciones también se pueden aplicar a ellos. Al menos un editor de iconos , Pixelformer, es capaz de realizar una optimización especial al guardar archivos ICO , reduciendo así su tamaño.

Los iconos de macOS también pueden contener subimágenes PNG, pero no existe ninguna herramienta disponible para ello.

Véase también

Notas explicativas

  1. El filtrado se utiliza para aumentar la similitud con los datos, incrementando así la relación de compresión. Sin embargo, teóricamente no existe una fórmula para la similitud, ni una relación absoluta entre la similitud y el compresor; por lo tanto, a menos que se realice la compresión, no se puede determinar qué conjunto de filtros es mejor que otro.
  2. 1 2 3 4 Se utilizapngout -f6para reutilizar el conjunto de filtros anterior
  3. Las herramientas que ofrecen dicha función podrían actuar como un simple descompresor de archivos PNG.
  4. zlib , la implementación de referencia de deflate, la compresión es subóptima incluso al nivel máximo. Ver Zopfli , formato zip en 7-zip y pngout .
  5. advpng no solo no admite la reducción de color, sino que también falla en imágenes con un espacio de color reducido.
  6. Advpng solo puede aplicar el filtro 0 globalmente, por lo tanto, no es ni sí ni no, sino N/A.
  7. [pngcrush|pngout] -f ozopflipng --filters
  8. zopflipng --filters=p
  9. El cuadro de diálogo de configuración de ↑pngoutwin para la optimización ofrece al usuario una selección de estrategias de filtrado.

Referencias

  1. 1 2 3 "ISO/IEC 15948:2004 – Tecnología de la información – Gráficos por computadora y procesamiento de imágenes – Gráficos de red portátiles (PNG): Especificación funcional" . Organización Internacional de Normalización . 3 de marzo de 2004. Recuperado el 19 de febrero de 2011 .
  2. "AVISO DE DERECHOS DE AUTOR, DESCARGO DE RESPONSABILIDAD y LICENCIA - Licencia de la Biblioteca de Referencia PNG versión 2" (TXT) . libpng.org . 1 de julio de 2000.
  3. 1 2 Roelofs, Greg (29 de mayo de 2010). "Historia de PNG" . libpng . Recuperado el 20 de octubre de 2010 .
  4. W3C 2003 , 1 Alcance .
  5. "Definición del sustantivo PNG del Oxford Advanced Learner's Dictionary" . Oxford Learner's Dictionaries . Consultado el 21 de enero de 2018 .
  6. "Descripción del archivo PNG de gráficos de red portátiles" . surferhelp.goldensoftware.com . Consultado el 12 de agosto de 2022 .
  7. T. Boutell; et al. (marzo de 1997). Especificación PNG (Portable Network Graphics) Versión 1.0 . Grupo de trabajo de redes. doi : 10.17487/RFC2083 . RFC 2083 . Informativo. sec. 3.
  8. "Registro del nuevo tipo de medio image/png" . IANA . 27 de julio de 1996.
  9. "Anuncio oficial [ sic ] de Compu$erve sobre la concesión de licencias GIF" . groups.google.com . Consultado el 8 de enero de 2025 .
  10. Limer, Eric (30 de octubre de 2019). "El GIF ha muerto. ¡Larga vida al GIF!" . Popular Mechanics . Recuperado el 21 de noviembre de 2022 .
  11. "Reflexiones sobre un formato de archivo que reemplace a los GIF" . groups.google.com . Consultado el 27 de febrero de 2026 .
  12. Roelofs 1999 , Capítulo 7. Historia del formato Portable Network Graphics. Error de sfn: no hay destino: CITEREFRoelofs1999 ( ayuda )
  13. 1 2 3 4 W3C 2003 , 11.2.2 IHDREncabezado de imagen
  14. Roelofs, Greg (29 de septiembre de 2011). "Especificación y extensiones de Portable Network Graphics (PNG)" . libpng . Consultado el 15 de agosto de 2021 .
  15. T. Boutell; et al. (marzo de 1997). Especificación PNG (Portable Network Graphics) Versión 1.0 . Grupo de trabajo de redes. doi : 10.17487/RFC2083 . RFC 2083 . Informativo. Sec. 8.4. PNG es estrictamente un formato de imagen única. (...) En el futuro, se podría definir un formato de imagen múltiple basado en PNG. Dicho formato se considerará un formato de archivo independiente.
  16. 1 2 "PNG Tercera Edición, Explicada" . W3C GitHub . 26 de febrero de 2025. Recuperado el 25 de junio de 2025 .
  17. "Portable Network Graphics (PNG) Specification (Third Edition) is now a W3C Recommendation". World Wide Web Consortium. 24 June 2025. Archived from the original on 25 June 2025. Retrieved 25 June 2025.
  18. Chris Blume (24 June 2025). "PNG is back!". ProgramMax. Retrieved 25 June 2025.{{cite web}}: CS1 maint: deprecated archival service (link)
  19. T. Boutell; et al. (March 1997). PNG (Portable Network Graphics) Specification Version 1.0. Network Working Group. doi:10.17487/RFC2083. RFC2083.Informational.
  20. W3C 2003, 5.2 PNG signature.
  21. W3C 2003, 5.3 Chunk layout.
  22. 12Laphroaig, Manul (31 October 2017). PoC or GTFO. No Starch Press. ISBN 9781593278984. Each chunk consists of four parts: Length, a Chunk Type, the Chunk Data, and a 32-bit CRC. The Length is a 32-bit unsigned integer indicating the size of only the Chunk Data field
  23. Laphroaig, Manul (31 October 2017). PoC or GTFO. No Starch Press. ISBN 9781593278984. Chunk Type is a 32-bit FourCC code such as IHDR, IDAT, or IEND.
  24. W3C 2003, 11.2.4 IDAT Image data.
  25. W3C 2003, 11.2.5 IEND Image trailer.
  26. W3C 2003, 11.3.3.3 iCCP Embedded ICC profile.
  27. "PNG Specification (Third Edition), cICP Coding-independent code points for video signal type identification". w3.org. 21 September 2023.
  28. "Adding support for HDR imagery to the PNG format". W3C Color on the Web Community Group. 3 May 2023.
  29. Thomas Kopp (17 April 2008). "PNG Digital Signatures: Extension Specification".
  30. "Portable Network Graphics (PNG) Specification (Third Edition)".
  31. "Extensions to the PNG 1.2 Specification, version 1.5.0". ftp-osl.osuosl.org.
  32. W3C 2003, 11.3.3.2 gAMA Image gamma.
  33. W3C 2003, 11.3.5.3 pHYs Physical pixel dimensions.
  34. W3C 2003, 11.3.3.4 sBIT Significant bits.
  35. "Especificación PNG (Portable Network Graphics) \ Versión 1.0" . w3.org . Consultado el 30 de mayo de 2022 .4.2.6. sBIT Bits significativos, 13 bytes en total - los tipos de color 2 y 3 suman 6 bytes
  36. Roelofs 2003 , Bits significativos (sBIT) : "Las imágenes en escala de grises son las más simples; sBIT contiene entonces un solo byte que indica el número de bits significativos en los datos de origen".
  37. "Especificación PNG: Especificaciones de fragmentos" .
  38. "Noticias PNG de 2006" . Libpng.org.
  39. 1 2 "Especificación PNG: Fundamento" . w3.org .
  40. W3C 2003 , 9 Filtrado .
  41. "Algoritmos de filtrado" . Especificación PNG .
  42. Paeth, Alan W. (1991). Arvo, James (ed.). "Compresión de archivos de imagen simplificada". Graphics Gems 2. Academic Press, San Diego: 93–100 . doi : 10.1016/B978-0-08-050754-5.50029-3 . ISBN 0-12-064480-0.Icono de acceso cerrado
  43. Crocker, Lee Daniel (julio de 1995). "PNG: El formato gráfico de red portátil" . Dr. Dobb's Journal . 20 (232): 36– 44.
  44. "Introducción a PNG" . nuwen.net . Consultado el 20 de octubre de 2010 .
  45. "¿Puedo usar... Tablas de soporte para HTML5, CSS3, etc." . caniuse.com . Consultado el 6 de febrero de 2021 .
  46. "iOS 8 y iPhone 6 para desarrolladores y diseñadores web: la próxima evolución para Safari y las aplicaciones web nativas" . mobilexweb.com. 17 de septiembre de 2014. Consultado el 24 de septiembre de 2014 .
  47. scroggo (14 de marzo de 2017). "chromium / chromium / src / 7d2b8c45afc9c0230410011293cc2e1dbb8943a7" . chromium.googlesource.com . Consultado el 31 de marzo de 2017 .
  48. chrome-cron; et al. (27 de marzo de 2017). "chromium / chromium / src / 59.0.3047.0..59.0.3053.0" . chromium.googlesource.com . Consultado el 31 de marzo de 2017 . 
  49. "Dev.Opera: Novedades en Chromium 59 y Opera 46" . dev.opera.com . Consultado el 11 de septiembre de 2022 .
  50. "Votación fallida: APNG 20070405a" . 20 de abril de 2007. Archivado del original el 3 de febrero de 2008.
  51. "Comparativa de propuestas de animación de PNG Group + software de prueba" . xs4all.nl . Archivado del original el 24 de enero de 2009.
  52. "Especificación PNG (Tercera edición), APNG: animación basada en fotogramas" . w3.org . 24 de junio de 2025.
  53. 1 2 3 P. Deutsch; JL. Gailly (mayo de 1996). Especificación del formato de datos comprimidos ZLIB versión 3.3 . Grupo de trabajo de redes. doi : 10.17487/RFC1950 . RFC 1950 .Informativo.
  54. P. Deutsch (mayo de 1996). Especificación del formato de datos comprimidos DEFLATE versión 1.3 . Grupo de trabajo de redes. doi : 10.17487/RFC1951 . RFC 1951 .Informativo.
  55. "Introducción básica a las características de PNG" . Libpng.org . Consultado el 20 de octubre de 2010 .
  56. "GIF, PNG, JPG. ¿Cuál usar?" . Sitepoint.com. 3 de agosto de 2009. Consultado el 20 de octubre de 2010 .
  57. "Extensiones a la especificación PNG 1.2, versión 1.5.0" . Consultado el 5 de mayo de 2020 .
  58. "T.87 : Compresión sin pérdidas y casi sin pérdidas de imágenes fijas de tono continuo – Línea base" . Unión Internacional de Telecomunicaciones . Consultado el 20 de marzo de 2011 . 
  59. 1 2 3 4 5 6 7 Roelofs 2003 , Capítulo 9. Compresión y filtrado
  60. "Formato de archivo JPEG XL" . Biblioteca del Congreso . Consultado el 1 de enero de 2025 .
  61. "Por qué Apple usa JPEG XL y qué significa para tus fotos" . Petapixel . 18 de septiembre de 2024. Consultado el 1 de enero de 2025 .
  62. "Codificación de imágenes JPEG XL" . Biblioteca del Congreso . Consultado el 1 de enero de 2025 .
  63. "Cómo se compara JPEG XL con otros códecs de imagen" . Cloudinary . 26 de mayo de 2020. Consultado el 1 de enero de 2025 .
  64. "WebP" . www.loc.gov . 13 de abril de 2023. Consultado el 22 de agosto de 2024 .
  65. 1 2 Ellis, Matt (22 de febrero de 2021). "¿Qué es WebP? Ventajas y desventajas de este formato de imagen de próxima generación" . 99designs . Recuperado el 22 de agosto de 2024 .
  66. "Un formato de imagen para la web | WebP" . Google para desarrolladores . Consultado el 22 de agosto de 2024 .
  67. Wes Fenlon (28 de abril de 2023). "He aquí por qué tienes que lidiar con tantos webP molestos ahora" . PC Gamer . Consultado el 22 de agosto de 2024 .
  68. "AVIF: Conozca el formato de archivo de imagen de siguiente nivel" . Alliance for Open Media . 8 de noviembre de 2023. Consultado el 26 de septiembre de 2024 .
  69. "PNG vs AVIF: La batalla definitiva entre formatos de imagen | Coconut©" . www.coconut.co . Consultado el 26 de septiembre de 2024 .
  70. 1 2 "AVIF vs. WebP: 4 diferencias clave y cómo elegir" . Cloudinary . Consultado el 26 de septiembre de 2024 .
  71. "libpng" . Consultado el 13 de julio de 2013 .
  72. "Ayuda de Fireworks / Guardar y exportar" . Adobe Inc. Consultado el 16 de abril de 2026 .
  73. "Uso de imágenes PNG para mostrar datos" . Centro de Ciencias del Agua de Oregón. 16 de febrero de 2006. Archivado del original el 20 de agosto de 2008. Consultado el 21 de octubre de 2003 .
  74. "Por qué no hay archivos GIF en las páginas web de GNU" . Sistema Operativo GNU . 16 de diciembre de 2008.
  75. "Hoja informativa sobre PNG" . Consorcio World Wide Web . 7 de octubre de 1996.
  76. "Página de recursos para gif2png 2.5.11" . catb.org .
  77. "Quema todos los GIF" . burnallgifs.org .
  78. "Transparencia PNG en Internet Explorer" . PC Magazine . 5 de octubre de 2004.
  79. "Tendencias históricas anuales en las estadísticas de uso de formatos de archivo de imagen para sitios web" . w3techs.com .
  80. 1 2 3 4 "Navegadores con soporte para PNG" . 14 de marzo de 2009.
  81. "El Explorador de Windows se bloquea al hacer clic en un archivo PNG de fuegos artificiales para visualizarlo" . Adobe Systems . 5 de junio de 2007.
  82. "No se pueden ver imágenes .png con Internet Explorer 4.0" . Base de conocimientos de Microsoft .
  83. "Los archivos PNG que se encuentran dentro de una etiqueta de objeto se imprimen como una imagen negativa" . Base de conocimientos de Microsoft .
  84. "Las imágenes PNG se imprimen incorrectamente en Internet Explorer 5.01" . Base de conocimientos de Microsoft .
  85. "No puedes ver algunas imágenes PNG en Internet Explorer 6" . Base de conocimientos de Microsoft .
  86. "No se puede usar Internet Explorer 6 para abrir un archivo PNG que contenga uno o más fragmentos IDAT de longitud cero" . Base de conocimientos de Microsoft .
  87. "Preguntas frecuentes sobre PNG" .
  88. "PhD: Los gráficos de red portátiles pierden transparencia en el navegador web" . Base de conocimientos de Microsoft .
  89. "Los archivos PNG no muestran transparencia en Internet Explorer" . Base de conocimientos de Microsoft .
  90. Lovitt, Michael (21 de diciembre de 2002). "Opacidad variable entre navegadores con PNG: una solución real" . A List Apart . Archivado del original el 18 de agosto de 2011. Recuperado el 21 de julio de 2009 .
  91. "IE7 alpha transparent PNG + opacity" . Canal 9. Archivado del original el 27 de agosto de 2011. Recuperado el 23 de enero de 2009 .
  92. Fulbright, Michael (1999). "GNOME 1.0 Library Roadmap" . Archivado del original el 30 de enero de 2010. Recuperado el 19 de diciembre de 2007 .
  93. "Windows Vista – Iconos" . OOne . 2007. Archivado del original el 11 de noviembre de 2007. Consultado el 12 de noviembre de 2007 .
  94. "PNG puede ser un formato con pérdida" . Pngmini.com . Consultado el 1 de febrero de 2014 .

Lecturas adicionales

  • Roelofs, Greg (abril de 1997). "Linux Gazette: Historia del formato Portable Network Graphics (PNG)" . Linux Journal . 1997 (36es). Specialized Systems Consultants, Inc. ISSN 1075-3583 . 
  • Roelofs, Greg (2003). PNG: La guía definitiva (2.ª  ed.). O'Reilly Media. ISBN 1-56592-542-4.
  • Especificación de gráficos de red portátiles (PNG) (segunda  edición). W3C . 10 de noviembre de 2003.
  • Especificación PNG (Tercera edición)
  • Sitio web principal de PNG
  • Página principal de libpng
  • La historia de Papúa Nueva Guinea, por Greg Roelofs
  • Prueba de imágenes PNG en línea
  • RFC 2083 
  • Más información sobre la corrección de color PNG
  • La biblioteca GD para generar archivos PNG dinámicos con PHP
  • Entrelazado PNG Adam7 Archivado el 31 de agosto de 2024 en Wayback Machine
  • Codificación de shells web en archivos PNG : Codificación de datos legibles por humanos dentro de un bloque IDAT.