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