title: Getting RGB values for each pixel from a 24bpp Bitmap for conversion to GBA format in C
body: <p>I want to read the RGB values for each pixel from a <code>.bmp</code> file, so I can convert the <code>bmp</code> into a format suitable for GBA (GameBoy Advance).</p>
  
  <p>I need to get just the RGB for each pixel and then write this information to a file.</p>
  
  <p>I am trying to use the <code>&lt;windows.h&gt;</code> structures:</p>
  
  <pre><code>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;
  </code></pre>
  
  <p>but I only need RGB struct. So let's say I read "in.bmp":</p>
  
  <pre><code>FILE *inFile, *outFile;
  inFile = fopen("C://in.bmp", "rb");
  
  Rgb Palette[256];
  for(i=0;i&lt;256;i++)
  {
     fread(&amp;Palette[i],sizeof(Rgb),1,inFile);
  }
  
  fclose(inFile);
  </code></pre>
  
  <p>Is this correct?
  How do I write only the RGB information to a file?</p>