El formato BMP

Mayo 2015

El formato BMP

El formato BMP es uno de los más simples. Fue desarrollado por Microsoft e IBM en forma conjunta, lo que explica su uso particularmente amplio en plataformas Windows y OS/2. Un archivo BMP es un archivo de mapa de bits, es decir, un archivo de imagen de gráficos, con píxeles almacenados en forma de tabla de puntos que administra los colores como colores reales o usando una paleta indexada. El formato BMP ha sido estudiado de manera tal que permite obtener un mapa de bits independiente del dispositivo de visualización periférico (DIB, Mapa de bits independiente del dispositivo).

La estructura de un mapa de bits es la siguiente:

Encabezado del archivo

El encabezado del archivo proporciona información acerca del tipo de archivo (mapa de bits) y su tamaño, así como también indica dónde comienza realmente la información de la imagen.

El encabezado comprende cuatro campos:

  • La firma (en 2 bytes), que indica que se trata de un archivo BMP con dos caracteres
    • BM, 424D en hexadecimal, que indica que se trata de un mapa de bits de Windows
    • BA que indica que se trata de un mapa de bits OS/2
    • CI que indica que se trata de un icono de color de OS/2
    • CP indica que es un puntero de color de OS/2
    • IC indica que es un icono de OS/2
    • PT indica que es un puntero de OS/2
  • El tamaño total del archivo en bytes (codificado en 4 bytes)
  • Un campo reservado (en 4 bytes)
  • El desajuste de la imagen (en 4 bytes), es decir, la ubicación del comienzo de la información de la imagen en relación con el comienzo del archivo

Encabezado de información del mapa de bits

El encabezado de información del mapa de bits proporciona información acerca de la imagen, en especial las dimensiones y los colores.

La información del mapa de bits comprende cuatro campos:

  • El tamaño del encabezado de información del mapa de bits en bytes (codificado en 4 bytes). Los siguientes valores hexadecimales son posibles según el tipo de formato BMP:
    • 28 para Windows 3.1x, 95, NT
    • 0C para OS/2 1.x
    • F0 para OS/2 2.x
  • El ancho de la imagen (en 4 bytes), es decir, el número de píxeles contados de forma horizontal
  • La altura de la imagen (en 4 bytes), es decir, el número de píxeles contados de forma vertical
  • El número de planos (en 2 bytes). Este valor es siempre 1
  • La profundidad del modelo de color (en 2 bytes), es decir, el número de bits usados para codificar el color. Este valor puede ser equivalente a 1, 4, 8, 16, 24 ó 32
  • El método de compresión (en 4 bytes). Este valor es 0 cuando la imagen no está comprimida o 1, 2 ó 3 según el tipo de compresión usado:
    • 1 para la codificación RLE de 8 bits por píxel
    • 2 para la codificación RLE de 4 bits por píxel
    • 3 para la codificación de campo de bits, lo que significa que el color fue codificado por una máscara triple representada por la paleta
  • El tamaño total de la imagen en bytes (en 4 bytes).
  • La resolución horizontal (en 4 bytes), es decir, el número de píxeles por metro contado de forma horizontal
  • La resolución vertical (en 4 bytes), es decir, el número de píxeles por metro contado de forma vertical
  • El número de colores de la paleta (en 4 bytes)
  • El número de colores importantes de la paleta (en 4 bytes). Este campo puede equivaler a 0 cuando todos los colores son importantes.

Paleta de imágenes

La paleta es opcional. Cuando se define la paleta, ésta contiene 4 bytes de forma sucesiva para cada una de las entradas, que representan:

  • El componente azul (en un byte)
  • El componente verde (en un byte)
  • El componente rojo (en un byte)
  • Un campo reservado (en un byte)

Codificación de imágenes

La codificación de imágenes se realiza escribiendo en forma sucesiva los bits que corresponden a cada píxel, línea por línea, comenzando por el píxel del extremo inferior izquierdo.

  • Las imágenes de 2 colores usan 1 bit por píxel, lo que significa que un byte permite codificar 8 píxeles
  • Las imágenes de 16 colores usan 4 bits por píxel, lo que significa que un byte permite codificar 2 píxeles
  • Las imágenes de 256 colores usan 8 bits por píxel, lo que significa que se necesita un byte para codificar cada píxel
  • Las imágenes de colores reales usan 24 bits por píxel, lo que significa que se necesitan 3 bytes para codificar cada píxel, respetando la alternancia del orden de los colores para el azul, el verde y el rojo.
Cada línea de la imagen debe comprender un número total de bytes que sea múltiplo de 4; si este esquema no se cumple, la línea se debe completar con todos los 0 necesarios para respetar el criterio.
Consulta este artículo sin tener que estar conectado, descárgalo gratis aquí en formato PDF:
El-formato-bmp.pdf

Consulta también


The BMP format
The BMP format
BMP-Format
BMP-Format
BMP - Format BMP
BMP - Format BMP
Il formato BMP
Il formato BMP
O formato BMP
O formato BMP
El documento « El formato BMP » de Kioskea (es.kioskea.net) se encuentra disponible bajo una licencia Creative Commons. Puedes copiarlo o modificarlo bajo las condiciones señaladas por esta licencia. Deberás hacerla siempre visible y dar crédito a Kioskea.