¿Qué es PNG?

Portable Network Graphics (PNG) es un formato de imagen ráster con compresión sin pérdida. Almacena imágenes de color indexado (paleta), en escala de grises o RGB con entre 1 y 16 bits por muestra, cada una con transparencia alfa opcional, y no tiene un tipo de color CMYK.

Cómo funciona PNG

Un flujo de datos PNG consiste en una firma de ocho bytes seguida de bloques, cada uno compuesto por una longitud, un tipo de cuatro letras, datos y un CRC. Cuatro tipos de bloque son críticos: IHDR (dimensiones, profundidad de bits y tipo de color), PLTE (la paleta de una imagen de color indexado), IDAT (los píxeles comprimidos) y IEND. Antes de la compresión, el codificador antepone a cada línea de barrido un byte de tipo de filtro que selecciona la ausencia de filtrado o uno de cuatro filtros que almacenan cada byte como su diferencia respecto de una predicción basada en los bytes vecinos; el flujo filtrado se comprime después con DEFLATE, el único método de compresión que define la especificación. Ambos pasos son reversibles, por lo que la decodificación devuelve exactamente las muestras que se codificaron. Los bloques auxiliares contienen información opcional, como el espacio de color (sRGB, iCCP, cICP), la densidad de píxeles (pHYs), texto y metadatos Exif (eXIf). Un decodificador puede ignorar un bloque auxiliar que no reconozca, pero debe informar de un bloque crítico desconocido en lugar de omitirlo silenciosamente.

Datos clave

  1. La compresión PNG es sin pérdida, por lo que los ajustes de selección de filtros y DEFLATE permiten equilibrar el tiempo de encoding y el tamaño del archivo sin cambiar nunca los píxeles decodificados. Un optimizador sin pérdida también puede reducir un archivo eliminando bloques de metadatos o utilizando una representación más compacta de los mismos píxeles, por ejemplo, eliminando un canal alfa completamente opaco, así que un archivo más pequeño por sí solo no demuestra que los píxeles hayan cambiado. Los cuantizadores de paleta como pngquant, o las opciones del codificador como palette de sharp, generan un PNG válido de color indexado con un máximo de 256 colores cuyos píxeles pueden diferir de los del original.
  2. Para imágenes en color con 256 colores o menos, la especificación PNG indica que casi siempre se recomienda usar color indexado, porque es probable que el color verdadero produzca archivos mucho más grandes. La conversión es exacta cuando la imagen tiene como máximo 256 valores de píxel distintos, contando el alfa, con 8 bits por muestra o menos. Para las fotografías, el formato no tiene un modo con pérdida al que recurrir: la guía de formatos de MDN recomienda PNG para capturas de pantalla, diagramas y dibujos de líneas, y un formato con pérdida para las fotografías. Además, una incidencia pública de sharp informa de un PNG que resultó más grande que su JPEG de origen después de reducir sus dimensiones.
  3. La transparencia tiene tres formas. Los tipos de color 4 y 6 contienen un canal alfa completo de 8 o 16 bits por muestra. Una imagen de color indexado puede incluir un valor alfa por entrada de paleta en un bloque tRNS, por lo que un PNG con paleta puede tener transparencia parcial. Para las imágenes en escala de grises y de color verdadero sin canal alfa, tRNS solo puede marcar un único valor de color como completamente transparente. El alfa almacenado no está premultiplicado en las muestras de color.
  4. PNG no puede contener datos CMYK. Las imágenes en color son RGB o se basan en paletas, un perfil ICC incorporado debe ser un perfil RGB (o un perfil de escala de grises para imágenes en escala de grises), y la especificación indica a los autores de extensiones que no añadan bloques que reinterpreten RGB como CMYK. Los bloques de espacio de color (sRGB, iCCP, cICP o gAMA con cHRM) son opcionales; sin ellos, la especificación trata las muestras como colores sin calibrar y dependientes del dispositivo, así que comprueba que una herramienta que elimine bloques auxiliares conserve aquellos de los que dependan tus colores.

Cuándo es importante PNG

Elige PNG para capturas de pantalla, diagramas, dibujos de líneas y otros gráficos de bordes nítidos, o para archivos cuya transparencia y píxeles exactos deban conservarse tras el encoding. Las fotografías y otras imágenes de tono continuo suelen tolerar la compresión con pérdida, por lo que un formato con pérdida es la opción habitual en esos casos; PNG conserva cada muestra, lo que a menudo implica archivos más grandes para esas imágenes.

Cómo ayuda Transloadit con PNG

La tabla de formatos de imagen de Transloadit incluye PNG como un formato que sus Robots basados en ImageMagick pueden leer y escribir, y /image/resize menciona png entre sus formatos de salida. /image/optimize reduce los archivos PNG con compresores sin pérdida de forma predeterminada; al establecer lossy: true, también se permite que pngquant compita, lo que reduce la imagen a una paleta de 256 colores.

Con lossy: true se elige el más pequeño de los resultados sin pérdida y con pérdida, por lo que la salida sigue siendo un archivo PNG, pero ya no se garantiza que sus píxeles sean idénticos a los de la entrada; la documentación del Robot advierte que pueden producirse cambios de color.

Explora los formatos de archivo y las capacidades de compresión de Transloadit

Fuentes

Convierte tus conocimientos sobre multimedia en un pipeline funcional

Conecta las subidas, el procesamiento, la IA, el almacenamiento y la entrega mediante una sola API declarativa, mientras nos encargamos por ti del stack de encoding, el escalado y los cambios constantes de formatos.

Prueba Transloadit gratis