【发布时间】:2018-08-05 18:35:55
【问题描述】:
我使用 GDI+ 加载了PNG 文件。
我的来源使用HBITMAP,所以我将PNG 转换为HBITMAP。
PNG 文件具有透明背景,但 HBITMAP 具有背景。
我想从HBITMAP 中删除背景。
【问题讨论】:
-
@AndrewTruckle 我试过
CImage::TransparentBlt,但我想用透明背景转换成HBITMAP -
所以你不能只加载它,就像这里:stackoverflow.com/questions/2490661/… ?
CImage类具有透明度。您应该能够显示透明图像。其他人可能可以为您提供更多帮助,但我认为您可能必须提供更多上下文和一些您当前正在做的事情的示例代码。加上当前结果的示例。 -
CImage类实现了operator HBITMAP,因此您可以在任何需要HBITMAP的地方轻松传递CImage。请注意,alpha 透明度不是使用HBITMAP存储的属性。根据您使用的 API(例如 AlphaBlend 与 StretchBlt),隐含 alpha 通道。 -
是什么样的PNG文件?有两种,8 位透明色(如 GIF)和 32 位 alpha 透明色。
标签: c++ winapi visual-studio-2008 mfc