Getting the pixel value of BMP file

bmp, c++, pixel

i got a question for reading an bmp image. How can i get the pixel value(R, G, B values) in an bmp image?
Can anyone help me using the C programming language?

Best Solution

Note: you may need to grab an extra byte for the alpha values if your BMP has alpha channel. In that case image would be image[pixelcount][4], and you would add another getc(streamIn) line to hold that fourth index. My BMP turned out to not need that.

 // super-simplified BMP read algorithm to pull out RGB data // read image for coloring scheme int image[1024][3]; // first number here is 1024 pixels in my image, 3 is for RGB values FILE *streamIn; streamIn = fopen("./mybitmap.bmp", "r"); if (streamIn == (FILE *)0){   printf("File opening error ocurred. Exiting program.\n");   exit(0); } int byte; int count = 0; for(i=0;i<54;i++) byte = getc(streamIn);  // strip out BMP header for(i=0;i<1024;i++){    // foreach pixel    image[i][2] = getc(streamIn);  // use BMP 24bit with no alpha channel    image[i][1] = getc(streamIn);  // BMP uses BGR but we want RGB, grab byte-by-byte    image[i][0] = getc(streamIn);  // reverse-order array indexing fixes RGB issue...    printf("pixel %d : [%d,%d,%d]\n",i+1,image[i][0],image[i][1],image[i][2]); } fclose(streamIn);