透明Bitmap的实现

kernet 2009-06-05 10:47:43
我使用CreateCompatibleBitmap创建了一个位图,它的默认背景是黑色。
我想使它变的透明,特来请教大家,请不吝赐教。
...全文
225 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyxie 2009-06-05
  • 打赏
  • 举报
回复
[Quote=引用楼主 kernet 的帖子:]
我使用CreateCompatibleBitmap创建了一个位图,它的默认背景是黑色。
我想使它变的透明,特来请教大家,请不吝赐教。
[/Quote]
你是说不想要黑色的背景,想要透明的背景?

如果是这样,
你先用CreateBrushIndirect, BS_HOLLOW 创建一个空画刷
然后把这个画刷SelectObject到hDC,
再调用CreateCompatibleBitmap
fengrx 2009-06-05
  • 打赏
  • 举报
回复
1.创建第一个CreateCompatibleBitmap,设置背景为黑色。
2.创建第二个同样的CreateCompatibleBitmap,设置背景为白色。
3.两者SRCAND(与)运算,结果就是透明的。
fengrx 2009-06-05
  • 打赏
  • 举报
回复
SRCAND运算。
码侬 2009-06-05
  • 打赏
  • 举报
回复
更改alpha通道的值应该能实现吧
rebecca_zjy 2009-06-05
  • 打赏
  • 举报
回复
笨办法:得到所有的像素信息,写到byte数组里,把alpha通道信息写为你要的透明度值,然后再写回位图中
hendriclee 2009-06-05
  • 打赏
  • 举报
回复
给你一些参考吧,不难
mynamelj 2009-06-05
  • 打赏
  • 举报
回复
TransparentBlt函数可以实现关键色透明
ok1234567 2009-06-05
  • 打赏
  • 举报
回复
透明是一个某种设备上绘制概念
可以使用CDC的MaskBlt(....ROP4_TRANSPARENTBLIT)来实现
具体参阅 MSDN

19,469

社区成员

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

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