请教一个简单的问题,为何使用BilBlt不能显示24位位图?

gsymichael 2010-04-13 11:53:34
PicDC.CreateCompatibleDC(pDC);	
hBitmap = CreateBitmap( pPicInfo->BmpInfoHeader.biWidth, pPicInfo->BmpInfoHeader.biHeight, pPicInfo->BmpInfoHeader.biPlanes,pPicInfo->BmpInfoHeader.biBitCount,pPicInfo->PicData);
if(NULL == hBitmap)
MessageBox(L"Create hBitmap object Fail!",NULL,MB_OK);
PicDC.SelectObject(hBitmap);
pDC->BitBlt(10,10,pPicInfo->BmpInfoHeader.biWidth,pPicInfo->BmpInfoHeader.biHeight,&PicDC,0,0,SRCCOPY);
DeleteObject(hBitmap);
PicDC.DeleteDC();

使用这段代码来显示位图,目前是16bpp RGB565的位图可以显示,但是24bpp 888的就没法显示。
请教一下如何才能显示24位位图?谢谢!
...全文
156 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
soswaidao 2010-04-14
  • 打赏
  • 举报
回复
帮楼主顶起来,不要让此贴沉下
liuyunyijiu 2010-04-14
  • 打赏
  • 举报
回复
哪位有CimageObject类库呀?发给我一份:1374084580@qq.com
谢谢!
xiuxianshen 2010-04-14
  • 打赏
  • 举报
回复
你看看

hBitmap = CreateBitmap( pPicInfo->BmpInfoHeader.biWidth, pPicInfo->BmpInfoHeader.biHeight, pPicInfo->BmpInfoHeader.biPlanes,pPicInfo->BmpInfoHeader.biBitCount,pPicInfo->PicData);

调试看看,用RGB565和24位的调用看看时,两者的biBitCount的区别,一个应该是16,一个应该是24
gsymichael 2010-04-14
  • 打赏
  • 举报
回复
回复内容不能为空,请输入回复
whatabig 2010-04-14
  • 打赏
  • 举报
回复
colour format for picDC and bitmap are not compatible
wuchuncai 2010-04-14
  • 打赏
  • 举报
回复
你的显卡现在是几位的,就能显示几位的。。。
gsymichael 2010-04-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xiuxianshen 的回复:]
你看看

C/C++ code

hBitmap = CreateBitmap( pPicInfo->BmpInfoHeader.biWidth, pPicInfo->BmpInfoHeader.biHeight, pPicInfo->BmpInfoHeader.biPlanes,pPicInfo->BmpInfoHeader.biBitCount,pPicInfo->PicData);
……
[/Quote]
这个调试过了,24位位图是这个biBitCount是24。
soswaidao 2010-04-13
  • 打赏
  • 举报
回复
soswaidao 友情帮顶~~~~友情帮顶~~~~

19,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧