bmp con c++ builder 3
Hola a todos,
me encuentro con un problema sobre este tipo de archivos y su apertura en bianrio. Programé en c y c++ en la universidad pero la memoria ya no da para tanto.
Debo abrir un archivo bmp monocrom (blanco o negro, 0 o 1) y guardar los datos en una matriz que representará el dibujo (es decir, veré el dibujo en 1's y 0's).
He conseguido localizar la cabecera del archivo y de ahà sacar el numero de filas y columnas de la matriz que debo crear, y el resto del fichero lo abro con enteros que luego paso a binario, y me queda todo en 1's y 0's( aun no he ordenado la matriz porque no estoy seguro de los resultados).
es este el método para tratar asà este tipo de archivos? Existe algún método directo, o algun librerÃa que ya los abra asÃ?
Agradeceré mucho la ayuda prestada.....
me encuentro con un problema sobre este tipo de archivos y su apertura en bianrio. Programé en c y c++ en la universidad pero la memoria ya no da para tanto.
Debo abrir un archivo bmp monocrom (blanco o negro, 0 o 1) y guardar los datos en una matriz que representará el dibujo (es decir, veré el dibujo en 1's y 0's).
He conseguido localizar la cabecera del archivo y de ahà sacar el numero de filas y columnas de la matriz que debo crear, y el resto del fichero lo abro con enteros que luego paso a binario, y me queda todo en 1's y 0's( aun no he ordenado la matriz porque no estoy seguro de los resultados).
es este el método para tratar asà este tipo de archivos? Existe algún método directo, o algun librerÃa que ya los abra asÃ?
Agradeceré mucho la ayuda prestada.....
Hola aca te envio algo sobre BMP
ESTRUCTURA DE UN MAPA DE BITS:
Un archivo de bitmap está dividido en secciones cuyos nombres son los siguientes:
BITMAPFILEHEADER bmfh;
BITMAPINFOHEADER bmih;
RGBQUAD aColors[];
BYTE aBitmapBits[];
BITMAPFILEHEADER: Contiene información sobre el tipo y tamaño del archivo.
BITMAPINFOHEADER: Especifica dimensiones,tipo de compresión y formato de color para el mapa de bits.
RGBQUAD: Contiene un arreglo de colores ( R,G,B,QUAD ) utilizado para representar cada color que puede contener la imagen. Las imágenes de 24 bits no poseen esta estructura debido a que cada pixel se representan con 24 bits directamente en la imagen.
Con respecto al número de bits por pixel este valor se guarda en una variable llamada biBitCount dentro del BITMAPINFOHEADER y sus valores pueden ser los siguientes:
1 Significa que tenemos una imagen monocromo, es decir que la paleta de colores tiene 2 entradas aunque estas no necesariamente son blanco y negro, además cada pixel se representa con 1 bit.
4 Cada bitmap tiene una paleta de colores con un máximo de 16 entradas y cada pixel se reprsenta con 4 bits .
8 Cada bitmap tiene una paleta de colores con un máximo de 256 colores y cada pixel se representa con un byte.
24 En estas imagenes tienen un máximo de 2^24 colores y cada pixel es representado por 3 bytes que corresponden a las distintas tonalidades de rojo,verde,azul.
lo que quisiera saber es que si la imagen ya esta esta en blanco y negro es decir monocromo(a nivel de bits 1 y 0) o de imagen(255 y 0) te digo esto porque si esta a color tienes que ver la profundidad de la imagen si es de 8 o 24 bits esto es lo que da los colores a la imagen.
si es a blanco y negro no hay problema lo que tienes que hacer es un array anidado de 1 a ancho de la imagen y otro de 1 a alto de la imagen y aca se almacena los datos de los pixeles de la imagen(1 y 0) o 0(negro) y 255(blanco).
tengo codigo en c++ builder para leer los pixeles alguna consulta adicional escribeme a mi correo [email protected]
ESTRUCTURA DE UN MAPA DE BITS:
Un archivo de bitmap está dividido en secciones cuyos nombres son los siguientes:
BITMAPFILEHEADER bmfh;
BITMAPINFOHEADER bmih;
RGBQUAD aColors[];
BYTE aBitmapBits[];
BITMAPFILEHEADER: Contiene información sobre el tipo y tamaño del archivo.
BITMAPINFOHEADER: Especifica dimensiones,tipo de compresión y formato de color para el mapa de bits.
RGBQUAD: Contiene un arreglo de colores ( R,G,B,QUAD ) utilizado para representar cada color que puede contener la imagen. Las imágenes de 24 bits no poseen esta estructura debido a que cada pixel se representan con 24 bits directamente en la imagen.
Con respecto al número de bits por pixel este valor se guarda en una variable llamada biBitCount dentro del BITMAPINFOHEADER y sus valores pueden ser los siguientes:
1 Significa que tenemos una imagen monocromo, es decir que la paleta de colores tiene 2 entradas aunque estas no necesariamente son blanco y negro, además cada pixel se representa con 1 bit.
4 Cada bitmap tiene una paleta de colores con un máximo de 16 entradas y cada pixel se reprsenta con 4 bits .
8 Cada bitmap tiene una paleta de colores con un máximo de 256 colores y cada pixel se representa con un byte.
24 En estas imagenes tienen un máximo de 2^24 colores y cada pixel es representado por 3 bytes que corresponden a las distintas tonalidades de rojo,verde,azul.
lo que quisiera saber es que si la imagen ya esta esta en blanco y negro es decir monocromo(a nivel de bits 1 y 0) o de imagen(255 y 0) te digo esto porque si esta a color tienes que ver la profundidad de la imagen si es de 8 o 24 bits esto es lo que da los colores a la imagen.
si es a blanco y negro no hay problema lo que tienes que hacer es un array anidado de 1 a ancho de la imagen y otro de 1 a alto de la imagen y aca se almacena los datos de los pixeles de la imagen(1 y 0) o 0(negro) y 255(blanco).
tengo codigo en c++ builder para leer los pixeles alguna consulta adicional escribeme a mi correo [email protected]
