lol
Magos, that's not working. Here's my code, hope you guys can help me out:
Code:
unsigned char *loadbmp(char *filename, BITMAPINFOHEADER *bmpinfo)
{
FILE *fileptr;
BITMAPFILEHEADER bmpfile;
unsigned char *bmpimage;
int imageidx = 0;
unsigned char swaprgb;
fileptr = fopen(filename, "rb");
if (fileptr == NULL){return 0;}
fread(&bmpfile, sizeof(BITMAPFILEHEADER), 1, fileptr);
if (bmpfile.bfType != BITMAP_ID)
{
fclose(fileptr);
return 0;
}
fread(bmpinfo, sizeof(BITMAPINFOHEADER), 1, fileptr);
fseek(fileptr, bmpfile.bfOffBits, SEEK_SET);
bmpimage=(unsigned char*)malloc(bmpinfo->biSizeImage);
if (!bmpimage)
{
free(bmpimage);
fclose(fileptr);
return 0;
}
fread(bmpimage, 1, bmpinfo->biSizeImage, fileptr);
if (bmpimage == NULL)
{
fclose(fileptr);
return 0;
}
for (imageidx = 0; imageidx < bmpinfo->biSizeImage / 3; imageidx+=1)
{
swaprgb = bmpimage[imageidx * 3];
bmpimage[imageidx] = bmpimage[imageidx * 3 + 1];
bmpimage[imageidx * 3 + 1] = swaprgb;
}
fclose(fileptr);
return bmpimage;
}