精易论坛

标题: 8位位图如何去除黑色背景 [打印本页]

作者: 191039295    时间: 2025-4-27 13:46
标题: 8位位图如何去除黑色背景
本帖最后由 191039295 于 2025-4-27 13:53 编辑

要把图片黑色区域变为透明,如何写代码,或给思路



hdcSrc = CreateCompatibleDC (hMDC)
SelectObject (hdcSrc, hBitmap)
' 创建掩码位图
hdcMask = CreateCompatibleDC (hMDC)
hMaskBitmap = CreateBitmap (宽, 高, 1, 1, 0)  ' 单色位图
SelectObject (hdcMask, hMaskBitmap)
' 将黑色背景对应的像素设置为白色,其他像素设置为黑色
SetBkColor (hdcSrc, 0)  ' 设置黑色为背景色
BitBlt (hdcMask, 0, 0, 宽, 高, hdcSrc, 0, 0, #SRCCOPY)
' 使用掩码绘制位图
BitBlt (hMDC, 0, 0, 宽, 高, hdcSrc, 0, 0, 1114278)  ' SRCINVERT
BitBlt (hMDC, 0, 0, 宽, 高, hdcMask, 0, 0, 11532730)  ' SRCAND
BitBlt (hMDC, 0, 0, 宽, 高, hdcSrc, 0, 0, 1114278)  ' SRCINVERT

BitBlt (hDc, x, y, 宽, 高, hMDC, 0, 0, #SRCCOPY)

这样用掩码图的可以去除黑色背景,但图片也变成单色的











作者: qqmqqg    时间: 2025-4-27 13:59
77777777777777777777777
作者: pipicool    时间: 2025-4-27 16:40
学习一下
作者: 嫂子    时间: 2025-4-27 17:04
转32位处理
作者: 神女软件定制    时间: 2025-4-27 17:41
transparentbit
作者: 酷易自绘    时间: 2025-4-27 19:18
需要转换成PNG格式的,然后去除黑色像素即可
作者: 汉族    时间: 2025-4-27 19:24
直接替换


作者: 1184798949    时间: 2025-4-27 20:13
感谢分享
作者: ttggnn    时间: 2025-4-27 20:31
感谢分享
作者: zhaohexuan2004    时间: 2025-4-27 22:16
感谢分享
作者: renhe2018    时间: 2025-4-28 00:28
非常不错的思路啊,。
作者: 豆豆灰常开心    时间: 2025-4-28 07:12
感谢楼主分享!
作者: 查过    时间: 2025-4-28 07:17
感谢发布原创作品,精易因你更精彩!6666666666666
作者: 杨明煜    时间: 2025-4-28 07:45
感谢,看看!.........
作者: year1970    时间: 2025-4-28 07:51
感谢分享
作者: wh1234567    时间: 2025-4-28 08:54
应该到求助板块发贴
作者: 胖子葛格    时间: 2025-4-28 13:52
感谢大神分享~!
作者: 豆豆灰常开心    时间: 2025-4-29 07:08
感谢您对论坛的支持!
作者: 查过    时间: 2025-4-29 07:12
感谢您对论坛的支持!
作者: ctry78985    时间: 2025-5-2 06:19
感谢分享
作者: 胖子葛格    时间: 2025-5-8 09:02
感谢大神分享~!




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4