我写了一个程序,它将一个位图文件(仅)加载到一个窗口,它适用于.bmp
扩展的任何文件。但是当我进行测试时,我遇到了下一个问题。我带了.jpg
扩展名的文件,在Paint
中打开,然后将其保存为BMP文件。当我使用这个新文件开始测试时,我的程序加载了一个黑色窗口。
我进行了调试,发现biColorUsed
结构的BITMAPINFOHEADER
字段为零。根据{{3}},这意味着
位图使用与biBitCount值对应的最大颜色数 biCompression指定的压缩模式的成员。
biCompression
字段也为零,表示文件未压缩。
biBitCount
等于24,这意味着(根据相同的文档)
bmiColors颜色表用于优化基于调色板的设备上使用的颜色,以及 必须包含biClrUsed成员指定的条目数 BITMAPINFOHEADER
无法指定,因为biClrUsed
为零。
所以,问题是,BMP
文件使用JPG
转换为Paint
文件来创建BMP
文件吗?
P上。 S.
我在我的程序中使用CreateDIBitmap函数。当我使用LoadImage加载相同的BMP
文件时,它工作正常。
结构BITMAPFILEHEADER
,BITMAPINFOHEADER
的任何其他字段都已正确加载。这就是我认为我正确加载BMP
文件中的数据的原因。我可以在GoogleDrive上传我的项目,然后分享它,如果需要的话。