¿Qué es un archivo PPM?
Un archivo PPM (Portable Pixel Map, también llamado portable pixmap) es el formato de imagen en color de Netpbm: una cuadrícula sin comprimir de muestras de rojo, verde y azul precedida de una breve cabecera de texto. Sus variantes binaria (P6) y de texto plano (P3) priorizan la facilidad de análisis sobre un tamaño compacto.
Cómo funcionan los archivos PPM
Una imagen PPM consiste en una cabecera de texto seguida de datos ráster. La cabecera contiene el número mágico y, después, el ancho, el alto y el valor máximo de muestra (maxval, de 1 a 65535) como números decimales ASCII separados por espacios en blanco; # inicia un comentario. En la variante binaria habitual (P6), un único carácter de espacio en blanco termina la cabecera y los datos ráster siguen en filas de arriba abajo, con cada píxel representado por una muestra roja, una verde y una azul: un byte cada una cuando maxval es inferior a 256 y, en caso contrario, dos bytes, con el más significativo primero. La variante de texto plano (P3) escribe cada muestra como un número decimal ASCII. No se comprime nada, por lo que una imagen binaria de 1920 × 1080 con un maxval de 255 ocupa 6.220.800 bytes más la cabecera. Netpbm califica PPM como un formato de color de mínimo común denominador y «sumamente ineficiente», y señala que su razón de ser es la gran facilidad para escribir programas que lo manejen.
Datos clave
- Escribe la variante binaria
P6a menos que una persona necesite leer el archivo. Netpbm considera bastante poco común la variante de texto planoP3y, para lograr la mayor compatibilidad posible, recomienda un subconjunto mínimo:P6, un salto de línea, el ancho y el alto separados por un espacio, un salto de línea, un maxval de como máximo 255, un salto de línea y, después, los datos ráster, con una sola imagen en el archivo. Un archivo PPM binario puede contener válidamente varias imágenes en secuencia, pero Netpbm advierte que la mayoría de las herramientas solo leen la primera. - Maxval determina tanto la escala como la cantidad de bytes de cada muestra. Los valores van de 0 a maxval, que puede ser cualquier valor entre 1 y 65535, y los archivos binarios pasan de un byte por muestra a dos bytes en orden big-endian cuando maxval alcanza 256. Un lector que tenga fijados en el código canales de 8 bits interpreta mal un archivo válido de 16 bits, y uno que ignore maxval interpreta mal el brillo. Netpbm señala que los archivos binarios estaban limitados a 255 antes de abril de 2000 y que los programas antiguos pueden depender de ello.
- El significado del color está especificado, pero no se registra en el archivo. Las muestras de un PPM auténtico son de rojo, verde y azul BT.709 con la función de transferencia gamma BT.709, y maxval en los tres canales corresponde al blanco D65. La propia especificación señala que los archivos suelen usar sRGB en su lugar o almacenar muestras lineales; la cabecera no tiene un campo para indicar cuál se utiliza ni espacio para un perfil ICC, así que acuerda la interpretación con quien produzca los archivos.
pnmgammade Netpbm convierte entre estas variantes. - PPM no tiene canal alfa: cada píxel consta de exactamente tres muestras. Netpbm conserva la transparencia en un archivo PGM independiente utilizado como máscara de transparencia, o en su formato PAM con el tipo de tupla
RGB_ALPHA, por lo que convertir una imagen con transparencia a PPM elimina el alfa a menos que se exporte por separado.
Cuándo son importantes los archivos PPM
Usa PPM para convertir, inspeccionar o depurar imágenes sin complicaciones cuando resulte útil la sencillez del decodificador. Conviértelo antes de la entrega cuando su tamaño relativamente grande pueda desperdiciar almacenamiento o ancho de banda de red.
Cómo ayuda Transloadit con los archivos PPM
La tabla de formatos de imagen de Transloadit incluye PPM como un formato que sus Robots basados en ImageMagick, incluido /image/resize, pueden leer y escribir, por lo que un archivo PPM puede convertirse a un formato comprimido como PNG o JPEG en un Step.
La tabla informa de lo que cada stack puede leer y escribir. No indica cómo se interpretan las muestras de 16 bits ni las variantes de color de PPM, y no se ejecutó ninguna Assembly para esta entrada.
Explora los formatos de archivo y las capacidades de compresión de Transloadit
Fuentes
- Netpbm: especificación del formato de imagen en color PPM (formato, subconjunto mínimo, PPM de texto plano, compatibilidad)
- Netpbm: especificación del formato de imagen PGM en escala de grises (variante de máscara de transparencia)
- Netpbm: especificación del formato PAM (tipos de tupla RGB y RGB_ALPHA)
- Incidencia #5008 de Pillow: se ignora el valor máximo de gris/color de PGM y PPM