Mapa de píxeles portátil (.ppm)
Netpbm EstándarPortable Pixmap Format (PPM) es el formato RGB a todo color de la familia gráfica Netpbm. Ofrece la representación sin comprimir más sencilla posible de imágenes digitales en color verdadero.
Inspección y metadatos
Los sistemas operativos y analizadores de archivos identifican los archivos de PPM inspeccionando la secuencia de bytes binarios inicial:
Firma de cabecera a nivel de bytes (bytes mágicos)
Los sistemas operativos y analizadores de archivos identifican los archivos de PPM inspeccionando la secuencia de bytes binarios inicial:
FIRMA HEXADECIMAL (DESPLAZAMIENTO 0):
50 33 / 50 36REPRESENTACIÓN ASCII: P3 / P6
Estandarización: Netpbm Library Standard
Especificaciones técnicas
| Arquitectura del contenedor | Formato Netpbm ASCII (P3) o binario (P6), con el ancho, el alto, el valor máximo de color y los datos RGB |
| Compresión | Bytes binarios sin comprimir o tripletes RGB en texto ASCII legible |
| Orden de bytes (Endianness) | Orden de bytes big-endian (para muestras de 16 bits por canal en modo P6, de 48 bits en total) |
| Espacios de color | RGB lineal o sRGB estándar |
| Canales y estructura | Tres canales RGB (color verdadero de 24 o 48 bits) |
| Dimensiones máximas | Prácticamente ilimitadas (admite un espacio de coordenadas arbitrario de 64 bits) |
| Transparencia | Ninguna (el PPM estándar solo admite RGB opaco) |
| Streaming y progresivo | Reproducción secuencial en streaming, fila por fila |
Matriz de comparación técnica: PPM frente a la competencia
| Atributo técnico | PPM (Actual) | BMP | PNG | TIFF |
|---|---|---|---|---|
| Profundidad de color | Color verdadero RGB de 24 o 48 bits | RGBA de 1 a 32 bits | RGBA de 24 o 48 bits | RGBA de 8 a 64 bits |
| Formato hermano en Netpbm | PPM (Portable Pixmap) | Formato ajeno a Netpbm | Formato del W3C ajeno a Netpbm | Formato de Adobe ajeno a Netpbm |
| Bytes mágicos | P3 (ASCII)/P6 (binario) | BM (0x42 0x4D) | ‰PNG.... | II*\0 o MM\0* |
| Compresión | Sin comprimir | Sin comprimir / RLE | Compresión Deflate sin pérdida; el ahorro de espacio varía según el contenido de la imagen | LZW / Deflate / Zip |
Modos de corrupción comunes y guía de recuperación hexadecimal
La imagen muestra un desplazamiento diagonal de los canales de color.
Causa raíz: Falta un byte del flujo de tripletes RGB, por lo que los bytes rojo, verde y azul siguientes quedan desalineados.
Recuperación: Vuelve a alinear los desplazamientos de los tripletes RGB o convierte el archivo con el conversor Netpbm de File2File.app.
Análisis de seguridad y vectores de ataque al analizador
Al calcular el tamaño de los búferes para tripletes RGB de 3 bytes, los descodificadores PPM deben protegerse frente a desbordamientos de enteros.
Vectores de ataque conocidos
- Desbordamiento de enteros al asignar un búfer de ancho x alto x 3.
- Lectura fuera de los límites del búfer al procesar tokens ASCII mal formados en modo P3.
- Denegación de servicio por declarar una asignación de memoria excesiva.
Mejores prácticas defensivas: Antes de descodificar, Limita estrictamente la memoria asignada en función del tamaño real del archivo.
Orígenes históricos e hitos
Ventajas principales
- Su arquitectura es muy sencilla y no requiere bibliotecas de compresión para leer, escribir ni modificar los archivos.
- El modo ASCII (P3) permite ver, copiar y editar valores RGB sin procesar en cualquier editor de texto.
- Formato intermedio estándar en cursos universitarios de gráficos por ordenador y proyectos de trazado de rayos.
Limitaciones técnicas
- Las imágenes P6 sin comprimir de 8 bits pueden ocupar mucho: los datos de píxeles de una imagen RGB de 3840 × 2160 usan unos 24,9 millones de bytes, más la cabecera.
- No es eficiente para distribuir archivos en la web ni transferirlos por la red.
- No admite transparencia alfa ni perfiles de color incrustados.
Curiosidades técnicas interesantes
- Prácticamente todos los estudiantes de informática que escriben un trazador de rayos por software guardan sus primeras imágenes en formato PPM.
- En el PPM ASCII (P3), una imagen es literalmente un archivo de texto con números: «255 0 0» para el rojo, «0 255 0» para el verde y «0 0 255» para el azul.
- El conjunto de herramientas Netpbm se distribuyó originalmente en las cintas de Unix 4.3BSD a finales de los años ochenta.
Preguntas técnicas frecuentes
¿Por qué los cursos de informática utilizan PPM?
PPM no requiere bibliotecas externas ni algoritmos de compresión complejos. Por eso, permite aprender los principios de los gráficos por ordenador trabajando directamente con los valores de los píxeles.
¿Cuál es la diferencia entre PPM P3 y P6?
P3 guarda los tripletes RGB como números en texto ASCII; P6 los guarda como bytes binarios sin procesar.
¿Cómo puedo convertir un archivo PPM a JPG o PNG?
Puedes convertir archivos PPM a PNG o JPG directamente en tu navegador utilizando File2File.app sin que ningún dato salga de tu dispositivo.