MFC CBitmap::LoadBitmap()函数

CBitmap::LoadBitmap()这个函数将资源中的位图加载到CBitmap对象中去,但是我资源里面的位图是24位的,怎么加载后就变成了32位的位图了呢?
能不能让本来就是24位的位图,加载到对象中之后还是24位的位图?

CBitmap::LoadBitmap()这个函数将资源中的位图加载到CBitmap对象中去。保存在位图文件中的位图叫设备无关位图,CBitmap调用LoadBitmap后于此位图对象相关的位图叫做设备相关位图。
资源里面的位图是24位的,加载后就变成了32位的位图。如果仍然是要是24位的位图。两种办法可以解决:1,、LoadBitmap后再把32位位图转成24位的位图;2,把显示器彩色改成24位的即可,之所以24位位图被转为32位是因为你的显示器彩色被设成32位的,所谓设备相关就是把与设备无关位图转换为可以在显示设备上显示的格式,24位的位图要在32位的显示器上显示就要把24位转换为32位后才可以显示,而LoadBitmap就实现这一部分功能,如果你的显示器色彩设置是24位,则加载到对象中之后还是24位的位图,其实32位位图和24位位图之间只是32位位图表示每一个像素多出一个字节,32位位图的前3个字节分别代表GBR,第四个字节目前很少用到。
函数(function)表示每个输入值对应唯一输出值的一种对应关系。这种关系使一个集合里的每一个元素对应到另一个(可能相同的)集合里的唯一元素。函数f中对应输入值的输出值x的标准符号为f(x)。包含某个函数所有的输入值的集合被称作这个函数的定义域,包含所有的输出值的集合被称作值域。若先定义映射的概念,可以简单定义函数为,定义在非空数集之间的映射称为函数。
位图图像(bitmap),亦称为点阵图像或绘制图像,是由称作像素(图片元素)的单个点组成的。这些点可以进行不同的排列和染色以构成图样。当放大位图时,可以看见赖以构成整个图像的无数单个方块。扩大位图尺寸的效果是增大单个像素,从而使线条和形状显得参差不齐。然而,如果从稍远的位置观看它,位图图像的颜色和形状又显得是连续的。常用的位图处理软件是Photoshop。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-28
你好,保存在位图文件中的位图叫设备无关位图,CBitmap调用LoadBitmap后于此位图对象相关的位图叫做设备相关位图,两种办法可以解决,1,、LoadBitmap后再把32位位图转成24位的位图;2,把显示器彩色改成24位的即可,之所以24位位图被转为32位是因为你的显示器彩色被设成32位的,所谓设备相关就是把与设备无关位图转换为可以在显示设备上显示的格式,24位的位图要在32位的显示器上显示就要把24位转换为32位后才可以显示,而LoadBitmap就实现这一部分功能,如果你的显示器色彩设置是24位,则加载到对象中之后还是24位的位图,其实32位位图和24位位图之间只是32位位图表示每一个像素多出一个字节,32位位图的前3个字节分别代表GBR,第四个字节目前很少用到。本回答被提问者采纳