1 pièce(s) jointe(s)
Probleme de chargement d'une image avec opengl
Bonjours a tous !
Je cherche a effectuer le chargement d'une image en couleur avec opengl mais je n'arrive pas, j'ai un decalage des bits et je ne comprend pas d'ou ca viens.
Merci de votre aide !!!
voici l'image :
voici mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| unsigned char*Bitmap::Open(char * filename, int * largeur, int * hauteur)
{
FILE * file;
long taille;
unsigned char * bmp;
struct
{
char type[2];
int dim[2];
} head;
file = fopen(filename,"rb");
if (!file) return NULL;
fread(head.type,1,2,file);
if ((head.type[0]!='B') || (head.type[1] != 'M'))
{ return NULL; }
fseek(file,18,SEEK_SET);
fread(head.dim,sizeof(int),2,file);
*largeur = head.dim[0];
*hauteur = head.dim[1];
taille = head.dim[0]*head.dim[1]*3;
bmp = new unsigned char[taille];
//bmp = (char*) malloc(taille);
if (!bmp)
{ return NULL; }
fseek(file,54,SEEK_SET);
fread(bmp,1,taille,file);
long k=0;
unsigned char t;
while (k<taille)
{
t=*(bmp+k+2);
*(bmp+k+2)=*(bmp+k);
*(bmp+k)=t;
k+=3;
}
fclose(file);
return bmp;
} |