手工创建的8位DDB的显示?
程序需要处理很多大图像,在每个大图像上寻找目标,然后标记出区域,这部分是别人做的,而且是在DLL中。我的任务是把小图像从大图像上取出来,显示到窗体上。
我开始的做法是:建立一个CompatibleDC(CreateCompatibleDC(NULL))将大图像hBitmap选入,在创建一个CompatibleDC(CreateCompatibleDC(NULL))和一个CBitmap (小图象)将CBitmap选入,然后通过BitBlt拷贝。这样生成了一个和原图像一样的32位小图象。但是在系统显示属性不是真彩色的情况下,图像就不能显示。
原图像是32位的,因为小图像需要显示成灰度图还要存储到数据库里,出于空间的考虑,我打算使用8位的灰度图。我使用了CBitmap对象。但是无论如何也显示不出来。肯定是DDB与调色板的问题,该怎么解决?
谢谢!