Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/04/2012, 05:52
javili
 
Fecha de Ingreso: abril-2012
Mensajes: 1
Antigüedad: 12 años
Puntos: 0
Leer BMP en estructura RGB

Hola, quisiera pedirles el favor de que me ayudaran con esto. Estoy realizando un código para optica adaptativa, para ello he creado una clase Pixel tal que:

Código:
class Pixel
{
    public:
    short int red;
    short int green;
    short int blue;
};
Mi unica dificultad es el leer un bmp cualquiera y asociarlo a un array de objetos Pixel, ya que un bmp tiene una estructura que es del mismo tipo que mi clase pixel (RGB). Fuente: http://en.wikipedia.org/wiki/BMP_file_format

Lo que el codigo debe devolver por pantalla son 4 columnas de hexadecimales del tipo:

00 00 FF
FA 00 FF
80 0A 00
...
...
Pasando estos hexadecimales a decimales cada columna son numeros comprendidos entre 0 y 256.

Tambien existe un problema con el encabezado del bmp, pero creo que si obtuviese esas columnas de hexadecimales podria resolverlo. Mi unico problema es por tanto obtener esas columas de numeros.

He probado con codigos del tipo:
Código:
#include<iostream>
#include <fstream>
using namespace std;


int main(){
	char v[100];
    ifstream entrada;
	entrada.open("m64.bmp",ios::binary);
    if(!entrada.fail()){
        for(int i=0; i<100; i++)
			entrada >> v[i];
		for(int j=0; j<2; j++)
			cout << v[j];
		entrada.close();
    }
    else cout << "No puedo abrir el archivo Dibujo.bmp"<<endl;
	cin.get();
	return 0;
}
Pero no consigo el resultado que quiero, o bien me sale un "BM" o bien me salen codigos sin sentido. Si puediesen ayudarme les estaria agradecidos, ya que mi formacion es de fisico y no estoy preparado para realizar esto, pero es necesario en este momento para mi.

Muchas Gracias