domingo, 22 de julio de 2012

Ejemplos ficheros BMP


Ejemplo 1-  Colores Bitmap (10*5)

La imagen en bits y Bytes – negro: cero,  blanco: uno

Volcado de memoria con HexEdit



Ejemplo 2 -  Colores Bitmap (10*5)

Volcado de memoria:

Expliación:




Ejemplos citados de:

Formato BMP



El formato BMP (Bitmap image file), desarrollado por Microsoft Corp. e IBM conjuntamente, fue introducido con Windows 3.0 en el año 1990. Un archivo BMP es un mapa de bits, donde existe una matriz de  pixeles  que se le asigna una dirección asociada a un código de color. Esto se conoce como una imagen. Su extensión puede ser  .bmp o .dib.


Ventajas:
*      Sencillez.
*      Fácil manipulación en la plataforma de Windows.
*      No se pierde la calidad de la imagen al no tener compresión.
*      Dejan comprimirse mediante ZIP o RAR, reduciendo su peso a la mitad.


Desventajas:
*      Al no ser comprimidos ocupan un gran tamaño.
*      Gran número de navegadores no aceptan este formato como imagen.



La estructura de un archivo BMP cuenta de tres o cuatro partes que se componen de:
*      Encabezado del archivo, especifica el tipo y el tamaño del archivo.
*     Encabezado de Información, proporciona las dimensiones, tipo de compresión y el formato de color.
*   Paleta (opcional), Contiene un arreglo de colores  utilizado para obtener la imagen.
*     Cuerpo de la imagen

El color de cada pixel está definido individualmente para obtenerlo se utiliza una combinación de rojo, verde y azul. Cada color se le asigna un valor numérico y  el rango de números depende de los bits utilizados para referenciarlos.  Si es 1 bit solo se permite dos colores (Ejemplo No 1).


Tabla 1. Estructura del encabezado del archivo. [1]
BITMAPFILEHEADER (Tamaño: 14 Byte)
Offset (Byte)
Tipo de dato
Tamaño
Nombre
Contenido
Dec
Hex
0
0
WORD
2 Byte
bfType
Cadena ASCII "BM" (valor decimal 19 778).
2
2
DWORD
4 Byte
bfSize
Tamaño de archivo BMP en bytes. (no fiable)
6
6
DWORD
4 Byte
bfReserved
0
10
A
DWORD
4 Byte
bfOffBits
Desplazamiento de los datos de imagen en bytes desde el comienzo del archivo.


Tabla 2. Estructura del encabezado de  la información. [2]
BITMAPINFOHEADER (Tamaño: 40 Byte)
Offset (Byte)
Tipo de dato
Tamaño
Nombre
Contenido
Dec
Hex
14
E
DWORD
4 Byte
biSize
40 (tamaño de la estructura BITMAPINFOHEADER en bytes)
18
12
LONG
4 Byte
biWidth
Ancho del mapa de bits en píxeles.
22
16
LONG
4 Byte
biHeight
La cantidad indica la altura del mapa de bits en píxeles.
Si el valor es positivo, el mapa de bits es un mapa de bits llamado "bottom-up '(datos de la imagen comienza con el más bajo y terminando con la línea del borde superior). Esta es la variante más común.
Si el valor es negativo, el mapa de bits es un "top-down" de mapa de bits (datos de la imagen comienza con el extremo superior e inferior con la línea de la imagen).
26
1A
WORD
2 Byte
biPlanes
1 (como en algunos formatos mayores, tales como PCX para el número de planos de color, pero no se utiliza para BMP)
28
1C
WORD
2 Byte
biBitCount
Especifica la profundidad de color de mapa de bits bpp, debe ser uno de los siguientes valores: 1, 4, 8, 16, 24 o 32 En bpp 1, 4 y 8, los colores se indican. 16 y 32 bpp son poco comunes.
30
1E
DWORD
4 Byte
biCompression
Uno de los valores siguientes:
§ 0 (BI_RGB) datos de la imagen es comprimida.
 1 (BI_RLE8): longitud de ejecución de datos de imagen codificados son de 8 bpp. Sólo se permite si biBitCount = 8 y biHeight positivo.
 2 (BI_RLE4): run-length imagen codificada bpp de datos para 4 personas. Sólo se permite si biBitCount = 4 y biHeight positivo.
 3 (BI_BITFIELDS): datos sin comprimir imágenes y códigos definidos por el usuario (el uso de máscaras de color). Sólo se permite si biBitCount = 16 ó 32, poco frecuentes.
34
22
DWORD
4 Byte
biSizeImage
§  Wenn biCompression=BI_RGB: Entweder 0 oder die Größe der Bilddaten in Byte.
§  Ansonsten: Größe der Bilddaten in Byte.
38
26
LONG
4 Byte
biXPelsPerMeter
La resolución horizontal del dispositivo de salida de destino en pixels por metro, pero está programado para archivos BMP por lo general a 0.
42
2A
LONG
4 Byte
biYPelsPerMeter
La resolución vertical del dispositivo de salida de destino en pixels por metro, pero está programado para archivos BMP por lo general a 0.
46
2E
DWORD
4 Byte
biClrUsed
  • Si biBitCount = 1: 0
  • Si biBitCount = 4 u 8: el número de entradas en la tabla de colores, 0 significa que el número máximo (16 o 256).
  • En caso contrario: el número de entradas en la tabla de colores (0 = no hay tabla de colores). Incluso si no es necesario en este caso, un todavía se puede dar para la tabla de cuantificación de color recomendada de color.
50
32
DWORD
4 Byte
biClrImportant
  • Si biBitCount = 1, 4 u 8: El número de todos los colores utilizados en la imagen, 0 significa que todos los colores en la tabla de colores.
  • En caso contrario:
Si existe una tabla de colores y que todos los colores utilizados en la imagen incluye: su número.
 En caso contrario: 0