¿Qué es un archivo PGM?

Un archivo Portable Graymap es un formato ráster de Netpbm en el que cada píxel representa una intensidad en escala de grises. Utiliza una estructura sencilla de texto o binaria en lugar de un contenedor de imagen con numerosas funciones.

Cómo funcionan los archivos PGM

PGM comienza con un identificador mágico, las dimensiones de la imagen y un valor máximo de muestra, seguidos de una muestra de intensidad por cada píxel. Su variante de texto escribe los valores como texto decimal, mientras que su variante binaria utiliza una carga útil binaria compacta; ambas describen la misma cuadrícula en escala de grises. El formato resulta útil en puntos de intercambio donde importa que el análisis sea transparente, como datos de prueba, entradas de visión artificial e inspección entre etapas de procesamiento.

Datos clave

  1. P5 identifica la variante en bruto (binaria) y P2 la variante de texto plano, que escribe cada muestra como un número decimal ASCII. Los campos de la cabecera se separan mediante espacios en blanco y pueden estar interrumpidos por comentarios que van desde # hasta el final de la línea. En PGM binario, un único carácter de espacio en blanco después del valor máximo separa la cabecera de los datos ráster. Un archivo binario puede contener varias imágenes consecutivas, aunque la especificación señala que la mayoría de las herramientas solo leen la primera; un archivo de texto plano contiene exactamente una.
  2. El valor máximo de la cabecera, y no una profundidad de bits fija, define el rango de las muestras: debe ser mayor que 0 y menor que 65536, con 0 como negro y el máximo como blanco. Las muestras binarias ocupan un byte cuando el máximo es inferior a 256 y, en caso contrario, dos bytes, con el byte más significativo primero. Suponer que hay un byte por píxel o que el orden es little-endian corrompe archivos válidos; libjpeg v6b, por ejemplo, escribía archivos PGM de 16 bits en orden little-endian en contra de la especificación, como se comentó en la lista de desarrolladores de FFmpeg. Para lograr la mayor compatibilidad posible, la especificación recomienda un máximo de 255, porque los archivos binarios no podían superarlo antes de abril de 2000.
  3. Una cabecera PGM no indica cómo se relacionan los valores de las muestras con la luz. La especificación los define como una intensidad codificada con la función de transferencia ITU-R BT.709, menciona los valores lineales y la curva sRGB como variantes comunes y reconoce que muchos archivos utilizan la estructura para enteros arbitrarios. Por lo tanto, debe acordarse fuera del archivo si este contiene niveles de gris para visualización, datos lineales de sensores, un mapa de profundidad o una máscara.
  4. PGM contiene un canal y no incluye alfa, perfil de color ni metadatos estructurados. Netpbm representa la transparencia mediante un segundo PGM utilizado como máscara, y su formato PAM puede contener gris y alfa juntos en un archivo. No hay ningún tipo de medio registrado en IANA; image/x-portable-graymap es la etiqueta convencional.

Cuándo son importantes los archivos PGM

Usa PGM como formato intermedio para datos de visión por computadora en escala de grises o para tareas sencillas de depuración. Conviértelo para su distribución cuando sean importantes el tamaño del archivo, los metadatos, la transparencia o la compatibilidad con una amplia variedad de aplicaciones.

Cómo ayuda Transloadit con los archivos PGM

La tabla de formatos de imagen de Transloadit, que abarca sus Robots basados en ImageMagick, como /image/resize, incluye PGM como un formato que esos Robots pueden leer y escribir.

La tabla solo registra la compatibilidad de lectura y escritura a nivel de formato. No indica si la salida es PGM binario o de texto plano ni cómo se manejan los valores máximos superiores a 255, así que procesa un archivo representativo con tu Assembly antes de depender de datos de mayor precisión.

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