Tengo que usar bmp porque necesito imagenes sin comprimir, basicamente imagenes tomadas de observatorios astronomicos, que tienen la maxima calidad y con la estructura tipo RGB. He intentado probar y comprender el enlace que me has dejado pero no consigo ningun resultado al intentar leer el bmp en esa forma. Lo que he intentado es lo siguiente:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
char c[100];
ifstream fich;
fich.open("m64.bmp",ios::binary);
while(!fich.eof()){
fich>>c;
cout<<c;
}
fich.close();
}
El resultado son codigos ilegibles:
======<<<;;;:::99900000///////11... y cosas por el estilo. Este codigo es solo una prueba para ver lo que me da de salida el codigo segun esos parametros en fstream.
El resultado que espero es el que viene en la wiki:
red green blue alpha
FF 00 00 7F que significa: 255 0 0 127 //tras pasarlo a decimal
00 FF 00 7F que significa: 0 255 0 127
...
Esto es la estructura RGB y un numero adicional "alpha", obteniendo este resultado podria asociar a cada valor de la columna a mi Pixel[i,j].red, Pixel[i,j].green, Pixel[i,j].blue a cada Pixel de mi array, y asi obtener un array de objetos Pixel con toda la informacion del bmp.
Mi pregunta es en que forma, o que parametros tengo que aplicar a fstream para obtener esa codificacion.
Tambien si podriais decirme como obviar la cabecera para que solo obtenga los valores de los colores de la imagen bmp del pixel.