Todo sobre archivos PGM
formato sencillo para imágenes en escala de grises
PGM es el representante de la escala de grises de la familia PBM. Mientras que PBM solo distingue entre blanco y negro, PGM permite hasta 65 535 tonos entre ambos extremos. Cada píxel se describe mediante un único valor numérico: 0 es negro y el valor máximo es blanco. PGM significa «Portable Gray Map» y fue desarrollado a finales de 1988 por Jef Poskanzer como una extensión de PBM. Para conocer la historia de toda la familia de formatos, consulta mi artículo sobre PBM.
TLDR:
PGM es el formato de escala de grises de la familia Netpbm. Funciona como PBM, solo que con más de dos «colores»: precisamente, la escala de grises. PGM se sigue utilizando en el procesamiento de imágenes, en la educación y como formato intermedio en tuberías. Quien conozca el artículo sobre PBM ya conoce el principio; PGM simplemente lo hace más gris. La variante a color es, al fin y al cabo, PPM.
La estructura técnica
Una imagen PGM se diferencia de una PBM en una sola línea adicional en el encabezado: el valor máximo (Maxval). Este determina cuántos tonos de gris utiliza la imagen. Con PGM también es posible dibujar una imagen en «papel cuadriculado». En lugar de rellenar casillas, aquí se utilizan en cada casilla números que representan un nivel de luminosidad.
| Componente | Ejemplo | Significado |
|---|---|---|
| Número mágico | P2 |
PGM simple (variante ASCII) |
| Comentario | # mein bild |
Opcional, iniciado con # introducido |
| Ancho Altura | 24 7 |
Dimensiones en píxeles |
| Valor máximo | <15 |
Valor de gris máximo (1-65535) |
| Datos de trama | 0 2 4 6 ... |
Valores de gris por píxel |
El ejemplo clásico de FEEP tiene este aspecto en PGM: cada letra tiene su propio nivel de brillo. (Para una mejor visualización con fuente monospaciada, he elegido un Maxval de 8)
P2 # feep.pgm 24 7 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 2 2 0 0 4 4 4 4 0 0 6 6 6 6 0 0 8 8 8 8 0 0 2 0 0 0 0 0 4 0 0 0 0 0 6 0 0 0 0 0 8 0 0 8 0 0 2 2 2 0 0 0 4 4 4 0 0 0 6 6 6 0 0 0 8 8 8 8 0 0 2 0 0 0 0 0 4 0 0 0 0 0 6 0 0 0 0 0 8 0 0 0 0 0 2 0 0 0 0 0 4 4 4 4 0 0 6 6 6 6 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
El texto FEEP se reconoce igual que en el ejemplo PBM, pero las letras se vuelven más claras de izquierda a derecha: la F es gris oscuro (2), la E es gris medio (4 y 6) y la P es blanca (8).
Maxval: la diferencia decisiva entre PBM y PGM
El Maxval determina la profundidad de color de la imagen. Por cierto, con Maxval 1, PGM se comporta exactamente igual que PBM. Con Maxval 255 se obtienen 256 tonos de gris, lo que corresponde a una imagen clásica en escala de grises de 8 bits. Son posibles valores superiores a 255 (hasta 65535), pero en la práctica rara vez se utilizan.
Plain vs. Raw: P2 y P5
Al igual que con PBM, PGM también tiene una variante ASCII y una variante binaria:
| Característica | PGM simple (P2) |
PGM sin formato (P5) |
|---|---|---|
| Datos de píxeles | Números decimales ASCII | Binario, 1 o 2 bytes por píxel |
| Legible por humanos | Sí, completamente | Solo el encabezado |
| Espacio de almacenamiento por píxel | Variable (dígitos + espacios en blanco) | 1 byte (valor máximo ≤ 255) o 2 bytes |
| Longitud máxima de línea | Se recomiendan 70 caracteres | Sin límite |
La variante RAW (P5) es el estándar en las herramientas Netpbm. Si el valor máximo es superior a 255, se utilizan dos bytes por píxel, en formato Big-Endian.
Ámbitos de aplicación típicos
El formato PGM se utiliza en todos aquellos casos en los que lo que importa es el valor de luminosidad puro por píxel y el color no tiene importancia:
– Ciencia y medicina: las radiografías, las resonancias magnéticas y las imágenes microscópicas se procesan a menudo como imágenes en escala de grises. El formato PGM es adecuado para ello debido a su simplicidad y a su almacenamiento sin pérdidas.
– Visión artificial: los detectores de bordes (Sobel, Canny), los métodos de umbral y los análisis de histogramas trabajan con datos en escala de grises. PGM los proporciona sin sobrecarga.
– Mapas altimétricos y modelos del terreno: cada píxel representa una altura, un caso de uso que encaja perfectamente con la lógica de «un valor por píxel» de PGM.
– Máscaras de transparencia: en Netpbm, PGM también se utiliza como máscara de transparencia. En este caso, el blanco representa opacidad total y el negro, transparencia total.
– Enseñanza: al igual que PBM, PGM es ideal para enseñar los fundamentos del procesamiento de imágenes (no del retoque de imágenes).
Gamma y espacio de color
Según la especificación, los valores de gris no son lineales, sino que siguen la función de transferencia gamma según ITU-R BT.709 (gamma 2.2). Sin embargo, en la práctica, muchos programas no la respetan y escriben valores lineales. La herramienta pnmgamma de Netpbm puede convertir entre ambas variantes. La función de transferencia sRGB, cada vez más habitual, también se desvía ligeramente de BT.709 y, en la realidad, la mayoría de los programas simplemente utilizan sRGB y denominan el resultado PGM.
Fuentes
Especificación del formato PGM de Netpbm
Artículo de PBM con la historia de la familia de formatos
.b0 { color: #ccc; }
.b2 {color: #222; }
.b4 {color:#444;}
.b6 {color:#666;}
.b8 { color: #888; }
const el = document.getElementById('pgm');
el.innerHTML = el.textContent.replace(/([0-9])/g, '<span class="b$1">$1</span>');
Convertir, abrir y editar archivos PGM
Detalles sobre los archivos PGM
- Software para abrir archivos PGM
- IrfanView
- XnView
- GIMP
- ImageMagick
- Software para editar archivos PGM
- GIMP
- ImageMagick
- Paint.NET
- Tipo MIME para PGM
- image/x-portable-graymap
- image/x-pgm
Última actualización el 23 abril, 2026 por
No hay comentarios