¿Qué es un archivo PBM?

Un archivo Portable Bitmap es un formato ráster de Netpbm para imágenes monocromas. Cada píxel tiene uno de dos valores, representados mediante un encoding de texto o binario deliberadamente sencillo.

Cómo funcionan los archivos PBM

PBM es el miembro de dos niveles de la familia Netpbm, junto a PGM (escala de grises) y PPM. PNM es el nombre colectivo de esos tres, y PAM es un cuarto formato más general. Una imagen PBM consta de un breve encabezado ASCII seguido de un ráster: un número mágico de dos caracteres, el ancho y el alto como números decimales separados por espacios en blanco y, a continuación, las filas de arriba abajo, cada una de izquierda a derecha. PBM no tiene un campo de valor máximo, que PGM añade después del alto. Antes del ráster, el texto desde un # hasta el final de la línea es un comentario. La forma binaria empaqueta los píxeles en bytes, mientras que la forma de texto, más antigua, escribe cada píxel como un 1 o un 0 en ASCII. Las imágenes más complejas necesitan PGM, PPM, PAM u otro formato.

Datos clave

  1. Identifica la variante por los dos primeros bytes, no por el sufijo: P4 es la forma binaria empaquetada (raw) y P1 es la forma de texto ASCII (plain). El sufijo convencional es .pbm, pero .pnm también se utiliza tanto para PBM como para PGM y PPM, y no hay ningún tipo de medio registrado en IANA (image/x-portable-bitmap es el valor convencional). Comprueba que tu biblioteca lea ambas variantes: la documentación de Pillow indica que escribe las formas binarias (raw) y que solo lee archivos de texto (plain) de P1 a P3 desde la versión 9.2.0.
  2. En PBM binario, cada fila se empaqueta con 8 píxeles por byte, con el bit más significativo primero, y el último byte de la fila se completa con bits cuyo valor es indiferente. Por tanto, una fila ocupa en bytes el ancho dividido entre 8, redondeado hacia arriba, y un lector que trate el ráster como un único flujo continuo de bits desalineará todas las filas posteriores a la primera cuando el ancho no sea múltiplo de 8. Exactamente un carácter de espacio en blanco separa el alto del ráster.
  3. Un valor almacenado de 1 es negro y uno de 0 es blanco, al contrario que en PGM, donde cero es negro y el valor máximo es blanco, y que en una imagen PAM con el tipo de tupla BLACKANDWHITE, que utiliza 0 para negro y 1 para blanco. El código que asigne directamente los bits almacenados en PBM a valores de luminosidad o muestras PAM tiene que invertirlos. Es posible que una biblioteca de decodificación ya lo haya hecho: Pillow convierte un valor almacenado de 1 en 0 y uno de 0 en 255, así que comprueba qué devuelve tu biblioteca antes de invertirlos de nuevo.
  4. Las dos variantes difieren en algo más que el encoding. Un archivo de texto contiene exactamente una imagen, no tiene bits de relleno, ignora los espacios en blanco dentro del ráster y debería limitar sus líneas a 70 caracteres. Un archivo binario puede contener varias imágenes consecutivas, algo que la especificación permite desde julio de 2000, y esta señala que la mayoría de las herramientas aún leen solo la primera. Para lograr la mayor compatibilidad posible, la especificación recomienda escribir P4, un salto de línea, el ancho y el alto separados por un espacio, un salto de línea y un único ráster.

Cuándo son importantes los archivos PBM

Usa PBM como formato intermedio para datos de dos niveles, como máscaras binarias que se transfieren entre herramientas de imagen. La especificación de Netpbm lo describe como un intermediario que no tiene en cuenta la eficiencia e indica que no es un formato que se usaría normalmente para almacenar o transmitir un archivo. No puede representar escala de grises, color ni transparencia parcial sin convertir a otro formato.

Cómo ayuda Transloadit con los archivos PBM

La tabla de formatos de imagen de Transloadit incluye PBM como un formato que sus Robots basados en ImageMagick, incluido /image/resize, pueden leer y escribir, y el parámetro format de ese Robot acepta cualquier formato que la tabla marque como compatible con la escritura.

La tabla no indica si la salida PBM se escribe en la variante binaria o en la de texto, así que comprueba el número mágico de la salida si la siguiente herramienta necesita una de ellas.

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