求大佬,有多种相近白色颜色的图片怎么实现透明贴图

0

想了很久了 看贴吧给的透明贴图详解 只能把图片中的一个颜色变透明,要让一个图片RBG(255,255,255)和RGB(254,254,254)这样的颜色像素全部变成透明该怎么做呢

ava
Y

2020-2-21

0

关于透明贴图,详见:https://codebus.cn/yangw/post/transparent-putimage

你提出的需求可以考虑修改该地址里面的贴图函数,将指定的颜色增加一个容差值,在指定差值范围内的像素点都不绘制,这样就可以了。

ava
慢羊羊

2020-2-21

大哥,我之前也是这个想法,用循环遍历的 RGB的x y z值来作参数调用TransparentBlt,最后发现这个函数是通过覆盖实现的消除某一颜色,最后会把之前所有处理后的图片都叠加起来,相当于没有修改....求一个思路 -  Y  2020-2-22
大概有思路了,但又出了个问题void transparentimage(IMAGE *dstimg, int x, int y, IMAGE *srcimg, COLORREF transparentcolor) { HDC dstDC = GetImageHDC(dstimg); HDC srcDC = GetImageHDC(srcimg); int w = srcimg->getwidth(); int h = srcimg->getheight(); // 使用 Windows GDI 函数实现透明位图 TransparentBlt(dstDC, x, y, w, h, srcDC, 0, 0, w, h, transparentcolor); } transparentimage(NULL, 0, 0, &src, RGB(x,y,z)); 这样调用不能成功调用,求教 -  Y  2020-2-22
已经解决啦,谢谢~ -  Y  2020-2-22
技术讨论社区