本帖最后由 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)
这样用掩码图的可以去除黑色背景,但图片也变成单色的
|