请教:CreateDibSection如何创建565格式的位图?

Ashuai 2005-04-11 04:45:34
我主要是想创建一块565格式的位图缓冲区,然后自己想起中添加颜色,如何创建565格式的位图呢?

我用CreateDibSection创建出来的事555格式的,请教各位大虾~~~!
...全文
125 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ashuai 2005-04-11
  • 打赏
  • 举报
回复
我搞定了,谢谢你反应这么快,100分都给你 :)
Ashuai 2005-04-11
  • 打赏
  • 举报
回复
还应该在bmpHeader的后几个字节中加入RGB的掩码对吧~~~
DentistryDoctor 2005-04-11
  • 打赏
  • 举报
回复
if (BI_RGB == pFormat->biCompression && 16 == pFormat->biBitCount)
return RGB555;
else if (BI_BITFIELDS == pFormat->biCompression && 16 == pFormat->biBitCount)
return RGB565;
else if (BI_RGB == pFormat->biCompression && 24 == pFormat->biBitCount)
return RGB24;
else if (BI_RGB == pFormat->biCompression && 32 == pFormat->biBitCount)
return RGB32;

RGB565


BITMAPINFOHEADER bmpHeader;
ZeroMemory(&bmpHeader, sizeof BITMAPINFOHEADER);
bmpHeader.biSize = sizeof BITMAPINFOHEADER;
bmpHeader.biWidth =width;
bmpHeader.biHeight = abs(height);
bmpHeader.biPlanes = 1;
bmpHeader.biBitCount = 16;
bmpHeader.biCompression = BI_BITFIELDS;//RGB555是BI_RGB;
bmpHeader.biSizeImage = 2*(bmpHeader.biWidth+3)/4*4*abs(bmpHeader.biHeight);
HBITMAP hBmp = CreateDIBSection(hDC, (BITMAPINFO*) &bmpHeader, DIB_RGB_COLORS, ppBits, NULL, 0);

19,468

社区成员

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

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