Article View: es.comp.demos
Article #2999Formato BMP - bmp-info.txt [01/01]
From: Alfredo Jose Martinez Tinoco
Date: Tue, 20 May 1997 00:00
Date: Tue, 20 May 1997 00:00
99 lines
5609 bytes
5609 bytes
Esto es simplemente una informaci�n �til si quieres saber c�mo visualizar
una imagen con formato BMP RGB Windows (no RLB).
El formato no es complicado pero no es f�cil de recordar por eso hice alg�n
tiempo este Trainner.
Notar�s que no he anotado la posici�n del 1er byte donde empieza la
informaci�n sobre las dimensiones de la imagen.... Probablemente sea por que
no tengo ni idea.(Ya sabes, si lo averiguas me lo cuentas).
Bueno eso es todo.Espero que os sea �til.
BEGIN -- Cut Here -- cut here
//////////////////////////////////////
/13-Abril-97.Instructor FORMATO BMP. /
/Alfredo Mart�nez Tinoco. /
/E-Mail: almarti@eui.upv.es /
//////////////////////////////////////
��������������������������������������
� AV/Gregorio Gea 91-9 �
� Mislata �
� (Valencia) �
� (Spain) �
� (The world) �
��������������������������������������
************************************
* Simple descriptor *
* del formato BMP *
* Windows RGB *
************************************
N� byte Contenido
======= ==========================================================
55 RGB vector. Contiene la paleta de colores correspondientes
a la imagen.
RGB= C�digo "Red-Green-Blue".Curiosamente este codigo apa-
rece invertido: 1� B,2� G y 3� R y a cada triplete RGB le
sigue un byte con valor 0 (que creo que no tiene ningun
significado). De modo que el vector ser� de la forma:
B G R 0 B G R 0 B G R 0.........
Cada componente del triplete ocupa un byte y tiene un va-
lor m�ximo de 255 (255*255*255= 16M de colores...tenemos
una pareta de aproximadamente de 16 millones de colores).
Tenemos que tener en cuenta que si estamos en el modo
320x200x256c s�lo disponemos de una paleta de 262144 colores
=64*64*64. Cada componente del triplete sigue ocupando un
byte pero alcanza un valor m�ximo de 63 ([0,63]) .
Esto quiere decir que si deseamos ver la imagen en este mo-
do gr�fico habr�a que hacer una conversi�n de la paleta a-
plicando una simple regla de 3:
255->63
C--->x
Es decir: Cada componente del triplete RGB "C" tendr� el
nuevo valor C=(63/255)*C.
Si la imagen es de 256 colores habr�n 256 c�digos RGB, cada
codigo RGB ocupa 3 bytes +1 byte=0, entonces se deduce con
una simple c�lculo que el tama�o del vector RGB=256*4=1Kb.
55+1024=1079 Aqu� se encuentra el vector de p�xels de la imagen.
Como hecho adrede para complicarnos la decodificaci�n los
p�xel no est�n ordenados de la forma que cabr�a esperar.
El 1er p�xel no corresponde a la esquina superior izquierda.
Y el �ltimo p�xel tampoco corresponde a la esquina inferior
derecha.
Pero realmente esto no nos va a complicar mucho m�s los c�l-
culos, el orden es el que sigue:
-El 1er p�xel corresponde a la �ltima l�nea.
-El �ltimo p�xel corresponde a la �ltima posici�n
de la 1� l�nea.
-El algoritmo de recorrido de los p�xels:
Para x=199 hasta 0 hacer
Para x=1 hasta 320 hacer
Lee_sig_byte(Fichero)
Guarda_byte(Imagen[x*320+x])
finPara
finPara
-El vector que obtendr�amos despu�s de ejectar el
algoritmo s� que estar�a ordenado de modo que con
una simple intrucci�n MOVS podr�amos volcarla so-
bre la pantalla.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*NOTA: En Turbo Pascal Vx.x la posici�n 0 en un fichero corresponde al 1er
byte.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Yar mind Rulez! B)
END -- Cut Here -- cut here
Technical Details
Message-ID:
<5lrv3l$pks@maia.cc.upv.es>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: fdc65,f8c488e0d27d641c,start X-Google-Attributes: gidfdc65,public From: almarti@eui.upv.es (Alfredo Jose Martinez Tinoco) Subject: Formato BMP - bmp-info.txt [01/01] Date: 1997/05/20 Message-ID: <5lrv3l$pks@maia.cc.upv.es> X-Deja-AN: 242829413 Organization: UPV Newsgroups: es.comp.demos