精易论坛

标题: gdiplus 去除半透明物体背景的抠图算法 [打印本页]

作者: 服毒自尽    时间: 2025-1-16 16:33
标题: gdiplus 去除半透明物体背景的抠图算法
用于去除半透明物体的背景,比如火焰,默认颜色是坐标(1,1)的颜色
由于电脑没有联网,手机又无法使用数据线,所以只有源码照片

IMG_20250116_162600.jpg (551.83 KB, 下载次数: 1)

IMG_20250116_162600.jpg

作者: 算法艺术家    时间: 2025-1-16 18:16
  
子程序名返回值类型公开备 注
羽化抠图字节集 
参数名类 型参考可空数组备 注
图片字节集
变量名类 型静态数组备 注
返回值字节集 
位图GP位图 
颜色整数型 
alpha整数型 
a整数型 
b整数型 
x整数型 
y  
Gdiplus初始化 ()
位图.创建自字节集 (图片)
a = 取整 (位图.取某点颜色 (1, 1) ÷ 255)  ' 把要去除的颜色分成255份
计次循环首 (位图.取高度 (), y)
计次循环首 (位图.取宽度 (), x)
颜色 = 位图.取某点颜色 (x - 1, y - 1)
b = 取整 (颜色 ÷ 255)  ' 把当前点的颜色分成255份
如果真 (b ≥ a)  ' 判断是否大于等于ab越接近明色越接近,透明度越高
alpha = 255 - b
颜色 = RGB到ARGB (颜色, alpha)  ' 设置透明度
位图.置某点颜色 (x - 1, y - 1, 颜色)

计次循环尾 ()
计次循环尾 ()
返回值 = 位图.保存到字节集 ( #图像格式_PNG )
位图.销毁 ()
Gdiplus关闭 ()
返回 (返回值)


作者: 神一样的人猫腻    时间: 2025-1-16 18:19

感谢你的分享
作者: cqcc    时间: 2025-1-16 18:40
本帖最后由 cqcc 于 2025-1-16 18:41 编辑

羽化抠图-gdiplus 去除半透明物体背景的抠图算法.e (1.22 MB, 下载次数: 13)

写了个例子




作者: qq73s5456    时间: 2025-1-16 20:34
#在这里快速回复# 羽化抠图-gdiplus 去除半透明物体背景的抠图算法.e (1.22 MB, 下载次数: 3)
作者: a1533759138    时间: 2025-1-16 21:02
感谢你的分享

作者: 亿万    时间: 2025-1-16 21:07
        支持开源~!感谢分享
作者: jysoft2022    时间: 2025-1-16 22:17
谢谢分享
作者: jable    时间: 2025-1-16 22:49
进来看看你
作者: 豆豆灰常开心    时间: 2025-1-17 07:09
感谢您对论坛的支持!
作者: 查过    时间: 2025-1-17 07:13
全都是大佬~
作者: kyo9766    时间: 2025-1-17 08:18
简单实用,感谢分享




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