Saving a bitmap on file

Hi ALL !!!
   Last 2 days I'm struggling to save the bmp on the file.The main problem with my code is when I use DIBSECTION structure to get the values of the bmp structures the value obtained are correct but when I use BITMAPINFO structure the value are incorrect. I am refferencing DIBLLOKEX code which is on codeguru site for saving the bmp. Every other things are proper(size, height, width of the saved bmp) except that when i open this saved file it shows only a block rectangle of the same size that of the bmp which i saved.
  I guess this is because the bit values are not correctly stored. Can anybody tell me how to get the bit values from the DIBSECTION structure? I've tried "GetBitmapBits" API but still giving the same problem.
  The bitmap is 256 bits.

Thanks in advance
Who is Participating?

Improve company productivity with a Business Account.Sign Up

FengYuanConnect With a Mentor Commented:
2) From GetDIBColorTable, you get RGBQUAD array
3) From DIBSECTION.dsBm.bmBits, you get pointer to the pixel array.

Add BITMAPFILEHEADER, you get a complete .BMP file

Feng Yuan
>> I guess this is because the bit values are not correctly stored.

You can check this by viewing the file with hex editor.
What is the color depth of the bitmap ?
You can store simply and directly by converting your HBITMAP to a DIB in a memory block, then storing the memory block to a file. DIB format is the same whether in memory or in a file, since it is device independent.

Let me know if you need working code.

>> The bitmap is 256 bits

I guess you mean 256 colors.
I asked for the color depth because if you use 256 colors then you'll have to store a color palette in your bitmap file.
Maybe you wrote an "empty" palette to the file.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.