如何将一幅32位真彩位图保存1位的单色位图

-燕赤侠- 2003-10-27 12:31:55
谢谢!
...全文
106 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
liotion 2003-11-12
  • 打赏
  • 举报
回复
请问一下:32位的位图有没有颜色表?
lynn98 2003-11-12
  • 打赏
  • 举报
回复
biBitCount=32 表示位图最多有232种颜色。这种位图的结构与16位位图结构非常类似,当biCompression成员的值是BI_RGB时,它也没有调色板,32位中有24位用于存放RGB值,顺序是:最高位—保留,红8位、绿8位、蓝8位。这种格式也被成为888 32位图。如果 biCompression成员的值是BI_BITFIELDS时,原来调色板的位置将被三个DWORD变量占据,成为红、绿、蓝掩码,分别用于描述红、绿、蓝分量在32位中所占的位置。
roger_ding 2003-11-12
  • 打赏
  • 举报
回复
很简单的,用CreateCompatibleDC创建一个bit为1的dc,然后用bitblt就ok了
linshengfeng 2003-11-11
  • 打赏
  • 举报
回复
1
huanyun 2003-10-27
  • 打赏
  • 举报
回复
可以直接转换的
#define DibGetPixel1(pDib, x, y) \
(0x01 & (* DibPixelPtr1 (pDib, x, y) >> (7 - ((x) & 7))))

#define DibSetPixel1(pDib, x, y, p) \
((* DibPixelPtr1 (pDib, x, y) &= ~( 1 << (7 - ((x) & 7)))), \
(* DibPixelPtr1 (pDib, x, y) |= ((p) << (7 - ((x) & 7)))))
crs96321 2003-10-27
  • 打赏
  • 举报
回复
复杂一点的方法:
先将其转化成256色灰度图像,在进行二值化就可以了。

19,468

社区成员

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

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