Getting RGB values for each pixel from a 24bpp Bitmap in C

Posted by seven on Stack Overflow See other posts from Stack Overflow or by seven
Published on 2009-10-07T12:15:19Z Indexed on 2010/04/02 7:03 UTC
Read the original article Hit count: 285

Filed under:
|
|
|
|

Hello,

i want to read the RGB values for each pixel from a .bmp file , so i can convert the bmp into a format suitable for gba .

so i need to get just the RGB for each pixel and then write this information to a file.

i am trying to use the windows.h structures :

typedef struct
{
    char signature[2];
    unsigned int fileSize;
    unsigned int reserved;
    unsigned int offset;
}BmpHeader;

typedef struct
{
    unsigned int headerSize;
    unsigned int width;
    unsigned int height;
    unsigned short planeCount;
    unsigned short bitDepth;
    unsigned int compression;
    unsigned int compressedImageSize;
    unsigned int horizontalResolution;
    unsigned int verticalResolution;
    unsigned int numColors;
    unsigned int importantColors;

}BmpImageInfo;

typedef struct
{
    unsigned char blue;
    unsigned char green;
    unsigned char red;
    unsigned char reserved;
}Rgb;

typedef struct
{
    BmpHeader header;
    BmpImageInfo info;
    Rgb colors[256];
    unsigned short image[1];
}BmpFile;

but i only need RGB struct. So lets say i read "in.bmp":

FILE *inFile, *outFile;
inFile = fopen("C://in.bmp", "rb");

Rgb Palette[256];
for(i=0;i<256;i++)
{
   fread(&Palette[i],sizeof(Rgb),1,inFile);
}

fclose(inFile);

is this correct ? how do i write only the RGB information to a file ?

can anyone please give me some information please .

Thank you.

© Stack Overflow or respective owner

Related posts about c

    Related posts about read