Mapa de grises portátil (.pgm)

Netpbm Estándar

Portable Graymap Format (PGM) es la especificación de imágenes en escala de grises de la familia Netpbm, ampliamente utilizada en visión artificial, robótica, inspección óptica y algoritmos de procesamiento de imágenes digitales.

Inspeccionar y metadatos

Los sistemas operativos y analizadores de archivos identifican los archivos de PGM inspeccionando la secuencia de bytes binarios inicial:

Selecciona o arrastra archivos aquí

Conversión 100% privada en el navegador; los archivos nunca salen de tu dispositivo

o pega Ctrl+V
Garantía de privacidad sin transmisión de red: 0 bytes subidos a servidores externos. Todo el procesamiento se realizó de forma local en el entorno seguro de tu navegador.

Firma de cabecera a nivel de bytes (Bytes mágicos)

Los sistemas operativos y analizadores de archivos identifican los archivos de PGM inspeccionando la secuencia de bytes binarios inicial:

FIRMA HEXADECIMAL (DESPLAZAMIENTO 0):

50 32 / 50 35

REPRESENTACIÓN ASCII: P2 / P5

Estandarización: Netpbm Library Standard

Especificaciones técnicas

Arquitectura del contenedorFormato Netpbm en ASCII (P2) o binario (P5) con ancho, alto, valor máximo de gris y flujo de píxeles
CompresiónBytes binarios en crudo sin comprimir o números de texto ASCII legibles por humanos
Orden de bytes (Endianness)Big-Endian (para muestras binarias de 16 bits en modo P5)
Espacios de colorEscala de grises lineal o escala de grises sRGB
Canales y estructura1 canal en escala de grises (precisión de 8 o 16 bits)
Dimensiones máximasPrácticamente ilimitadas (admite un espacio de coordenadas arbitrario de 64 bits)
TransparenciaNinguna
Streaming y progresivoReproducción en streaming secuencial fila por fila

Matriz de comparación técnica: PGM frente a la competencia

Atributo técnicoPGM (Actual)PBMPPMPNG
Modo de colorEscala de grises (8 bits / 16 bits)Monocromo de 1 bitTruecolor RGB (24 bits / 48 bits)Escala de grises, RGB, RGBA
Formato hermano en NetpbmPGM (Mapa de grises portátil)PBM (Mapa de bits portátil)PPM (Mapa de píxeles portátil)Estándar W3C ajeno a Netpbm
Bytes mágicosP2 (ASCII) / P5 (Binario)P1 (ASCII) / P4 (Binario)P3 (ASCII) / P6 (Binario)‰PNG....
CompresiónSin comprimirSin comprimirSin comprimirDeflate sin pérdidas

Modos de corrupción comunes y guía de recuperación hexadecimal

La imagen se muestra invertida o completamente quemada en blanco.

Causa raíz: Parámetro 'maxval' desajustado en la cabecera (ej. maxval declarado como 1 en lugar de 255).

Recuperación: Corrija la línea de cabecera maxval o convierta utilizando el conversor Netpbm de File2File.

Análisis de seguridad y vectores de ataque al analizador

Los decodificadores de PGM deben validar cuidadosamente que los recuentos de píxeles analizados coincidan con las dimensiones declaradas para evitar el desbordamiento del búfer.

Vectores de ataque conocidos

  • Desbordamiento de enteros durante la asignación del búfer ancho * alto * (maxval > 255 ? 2 : 1).
  • Lectura excesiva del búfer al leer tokens numéricos ASCII malformados.
  • Denegación de servicio a través de una asignación masiva de memoria provocada por dimensiones de cabecera fabricadas.

Mejores prácticas defensivas: Limite las dimensiones máximas permitidas y los límites de asignación de memoria antes de leer los flujos de píxeles.

Orígenes históricos e hitos

2000Se estandariza la profundidad de 16 bits (maxval hasta 65 535) en el modo binario P5 para imágenes científicas.
1993Se incorpora al kit de herramientas Netpbm como el formato intermedio estándar en escala de grises.
1989Jef Poskanzer crea PGM para complementar a PBM con soporte completo de escala de grises de 256 niveles.

Ventajas clave y pros

  • Cero complejidad: extremadamente sencillo de analizar y escribir en C, Python o WebAssembly sin bibliotecas externas.
  • La compatibilidad nativa con escala de grises de 16 bits lo hace ideal para mapas de alturas, mapas de profundidad e imágenes térmicas.
  • El modo ASCII (P2) permite la inspección directa y la manipulación de valores de píxeles en bruto en editores de texto estándar.

Limitaciones técnicas y contras

  • Sin compresión: huellas de archivo grandes en comparación con formatos comprimidos como PNG.
  • Carece de metadatos para dimensiones físicas, espacios de color o geolocalización.
  • Estrictamente monocanal: no puede almacenar datos de color ni transparencia alfa.

Curiosidades técnicas interesantes

  • OpenCV, ROS (Robot Operating System) y los sistemas de visión artificial utilizan frecuentemente PGM para mapas de navegación SLAM.
  • Los desarrolladores de juegos suelen utilizar archivos PGM de 16 bits como mapas de altura de terreno porque los datos de elevación en crudo no están comprimidos y son fáciles de cargar.
  • El parámetro 'maxval' en la cabecera define el valor máximo de brillo (típicamente 255 para 8 bits o 65 535 para 16 bits).

Preguntas técnicas frecuentes

¿Para qué se utiliza el formato PGM?

PGM se utiliza principalmente en visión artificial (OpenCV), robótica (archivos de mapa ROS), imágenes científicas y generación de mapas de altura de terrenos 3D.

¿Cuál es la diferencia entre los archivos PGM P2 y P5?

P2 es texto ASCII plano donde cada píxel es un número escrito, mientras que P5 almacena los píxeles como bytes binarios compactos.

¿Cómo puedo convertir PGM a JPG o PNG?

Suba su archivo PGM a File2File.app para convertirlo a PNG o JPG directamente en su navegador con total privacidad.