sábado, 21 de diciembre de 2013

Formato gráfico BMP

Formato gráfico BMP

por: The Inspector

Existen variedad de formatos para almacenar información gráfica en un ordenador, algunos mas complejos que otros, pero de ellos uno de los más básicos es el formato BMP (Bitmap) o mapa de bits, este formato almacena la información gráfica de cada uno de los pixceles que componen la imagen, así que permite guardar imágenes en una calidad muy alta, sin embargo como desventaja el tamaño del archivo es directamente proporcional al tamaño de la imagen.


Un archivo BMP esta compuesto por 2 elementos una cabecera para identificación del archivo y los datos de los pixceles de la imagen según corresponda al tipo de mapa de bits. Como se indica mas adelante la cantidad de bytes utilizados para almacenar la cabecera del archivo varía dependiendo del tipo de mapa de bytes aunque básicamente se compone de:

Bytes
Contenido
0-1
(BM) identificador del archivo.
2-5
Tamaño del archivo
6-9
Reservados
10-13
Indica el inicio de los datos de la imagen
14-17
Tamaño de la cabecera del archivo 0x28
18-21
Ancho en pixceles
22-25
Altura en pixceles
26-27
Numero de planos siempre es 1
28-29
Cantidad de bits por pixcel 1,4,8,16,24,32
30-33
Tipo de compresión (0=sin compresión)
34-37
Cantidad de Bytes de la imagen.
38-41
Resolución horizontal
42-45
Resolución vertical
46-49
Tamaño de la tabla de color
50-53
Contador de colores importantes

Un mapa de bits puede ser almacenado como monocromático(1bit), 16 colores(1byte), 256 colores(2byte), 16bits(4bytes), 24bits(6bytes) y 32bits(8bytes) refiriéndose a la cantidad de bits que se utilizan para almacenar la información de 1pixcel.

Los mapas de bits monocromáticos, se almacenan con una cabecera de 0x3Ebytes (62bytes) mas 1bit por pixcel, dado que solo podrá almacenar un color por pixcel, el cual sería 1b para el blanco, 0b para el negro. En el programa Paint, cuando guardamos un archivo de este tipo muestra una tabla de tonos intermedios entre el blanco y el negro, sin embargo, estos tonos no se almacenan en el archivo, ni siquiera se visualizan en el programa ya que solo se puede ver el blanco o el negro.



Los mapas de bits de 16 colores, se almacenan con una cabecera de 0x76bytes (118bytes) mas 1byte por pixcel y los colores están entre el negro 0x0 y el blanco 0xF.



Los mapas de bits de 256 colores, se almacenan con una cabecera de 0x436bytes (1078bytes) mas 2bytes por pixcel, los colores están entre el negro 0x00 y el blanco 0xFF



Los mapas de bits de 24bits, se almacenan con una cabecera de 0x36bytes (54bytes) mas 6bytes por pixcel y los colores se encuentran entre negro 0x000000 y el blanco 0xFFFFFF.



Haciendo uso del programa Paint para hacer las pruebas de los archivos, nos permite guardar archivos monocromáticos, 16 colores, 256 colores y 24 bits. Este programa cuando guarda un archivo de 256 colores, agrega una tabla de colores que tiene una longitud de 1024bytes es decir, 0x400bytes, la cual se agrega a la cabecera de la imagen.

Otro punto a anotar respecto a este formato es que independiente de la cantidad de bytes que utilice para almacenar la información de los pixceles, siempre utilizara múltiplos de 8bytes por cada linea de alto que tenga la imagen, los cuales se rellenan con 0x00.

Es de tener en cuenta que este formato siempre guardará la información en el formato little-Endian así que primero guardará la ultima linea y continuará hasta llegar a la primera linea, así como también guardará los colores siguiendo el formato Azul, Verde, Rojo.




No hay comentarios.:

Publicar un comentario