开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 753|回复: 25
收起左侧

[易源码分享] gdiplus抠图类模块源码 比之前发布的效果好

[复制链接]
发表于 2025-3-14 19:46:58 | 显示全部楼层 |阅读模式   **
分享源码
界面截图:
是否带模块: -
备注说明: -
本帖最后由 服毒自尽 于 2025-3-14 19:59 编辑
  
数据类型名公开备 注
矩形信息 
成员名类 型传址数组备 注
左边整数型  
顶边整数型  
宽度整数型  
高度整数型  
数据类型名公开备 注
水印信息 
成员名类 型传址数组备 注
是否去除逻辑型  
区域矩形矩形F  
数据类型名公开备 注
截图信息 
成员名类 型传址数组备 注
是否截取逻辑型  
区域矩形矩形F  

  
窗口程序集名保 留  保 留备 注
图片操作类   
子程序名返回值类型公开备 注
_初始化 当基于本类的对象被创建后,此方法会被自动调用
Gdiplus初始化 ()
子程序名返回值类型公开备 注
_销毁 当基于本类的对象被销毁前,此方法会被自动调用
Gdiplus关闭 ()
子程序名返回值类型公开备 注
羽化抠图字节集 
参数名类 型参考可空数组备 注
图片字节集
容差整数型颜色的允许误差范围小于等于这个值就设置为完全透明
过渡整数型透明度过度范围,与容差相加应小于等于255
截图截图信息图片的裁剪信息,包括是否裁剪和裁剪的范围信息
水印水印信息图片的水印信息,包括是否去除和去除的范围信息
通道整数型默认为0,是RGB通道,1为R通道,2为G通道,3为B通道
颜色整数型要去除的颜色
变量名类 型静态数组备 注
颜色值A字节集 
颜色值B字节集 
替换色整数型 
相似度整数型 
返回值字节集 
横坐标整数型 
纵坐标整数型 
位图GP位图 
判断 (截图.是否截取 = )
判断 (水印.是否去除 = )
位图.创建自字节集 (图片)
位图.创建自字节集 (区域截图 (图片, 截图))  ' ------------------------------------------------------------------------------000000------没有水印存在就先处理,可以节省时间
更新水印信息 (截图, 水印)

位图.创建自字节集 (图片)
颜色值A = 到字节集 (颜色)
计次循环首 (位图.取高度 (), 纵坐标)
计次循环首 (位图.取宽度 (), 横坐标)
颜色值B = 到字节集 (位图.取某点颜色 (横坐标 - 1, 纵坐标 - 1))  ' -----------------------------------------------------------------------------------获取当前点的颜色值
判断 (通道 = 0)  ' ------------------------------------------------------------------------------------------------------------------------------------------RGB通道
相似度 (取绝对值 (颜色值A [3] - 颜色值B [3])取绝对值 (颜色值A [2] - 颜色值B [2])取绝对值 (颜色值A [1] - 颜色值B [1])) ÷ 3
判断 (通道 = 1)  ' -----------------------------------------------------------------------------------------------------------------------------------------红色通道
相似度 = 取绝对值 (颜色值A [3] - 颜色值B [3])
判断 (通道 = 2)  ' -----------------------------------------------------------------------------------------------------------------------------------------绿色通道
相似度 = 取绝对值 (颜色值A [2] - 颜色值B [2])
相似度 = 取绝对值 (颜色值A [1] - 颜色值B [1])  ' ----------------------------------------------------------------------------------------------------------蓝色通道
判断 (相似度 ≤ 容差)  ' ----------------------------------------------------------------------------------------Alpha与颜色相似度关联,小于容差的统统将透明度设置为0
相似度 = 0
判断 (相似度 ≥ 容差 + 过渡)  ' ---------------------------------------------------------------------------Alpha与颜色相似度关联,大于2倍容差的统统将透明度设置为255
相似度 = 255
相似度 = 取整 (255 ÷ (容差 ÷ 相似度))  ' --------Alpha与颜色相似度关联,大于容差且小于2倍容差的,将容差分为alpha份,用得到的值去分255,得到受alpha值影响的透明度值
替换色 = RGB到ARGB (取颜色值 (颜色值B [3], 颜色值B [2], 颜色值B [1]), 相似度)  ' ---------------------------------------------------------------------------- 设置透明度位图.置某点颜色 (横坐标 - 1, 纵坐标 - 1, 替换色)
如果真 (水印.是否去除 = )  ' -------------------------------------------------------------------------------------------去除图片中的水印,不单独处理,可以节省时间
如果真 (是否在区域内 (水印.区域矩形, 横坐标 - 1, 纵坐标 - 1))
替换色 = RGB到ARGB (取颜色值 (颜色值B [3], 颜色值B [2], 颜色值B [1]), 0)  ' ------------------------------------------------------------------------- 设置透明度
位图.置某点颜色 (横坐标 - 1, 纵坐标 - 1, 替换色)


计次循环尾 ()
计次循环尾 ()
如果真 (截图.是否截取 = 水印.是否去除 = )  ' ----------------------------------------------------------------------------------------------------------------截图
位图.复制部分 (截图.区域矩形, #像素格式_32bppARGB, 位图)
返回值 = 位图.保存到字节集 ( #图像格式_PNG )
位图.销毁 ()
返回 (返回值)
子程序名返回值类型公开备 注
更新水印信息  
参数名类 型参考可空数组备 注
截图截图信息
水印水印信息
变量名类 型静态数组备 注
截图矩形矩形F 
水印矩形矩形F 
截图矩形 = 截图.区域矩形
水印矩形 = 水印.区域矩形
判断 (水印矩形.左边 + 水印矩形.宽度 ≤ 截图矩形.左边 水印矩形.左边 ≥ 截图矩形.左边 + 截图矩形.宽度 水印矩形.顶边 + 水印矩形.高度 ≤ 截图矩形.顶边 水印矩形.顶边 ≥ 截图矩形.顶边 + 截图矩形.高度)
水印.是否去除 = 假
如果真 (水印矩形.左边 < 截图矩形.左边)
水印矩形.宽度 = 水印矩形.左边 + 水印矩形.宽度 - 截图矩形.左边
水印矩形.左边 = 0
如果真 (水印矩形.左边 + 水印矩形.宽度 > 截图矩形.左边 + 截图矩形.宽度)
水印矩形.宽度 = 截图矩形.左边 + 截图矩形.宽度 - 水印矩形.左边
水印矩形.左边 = 水印矩形.左边 - 截图矩形.左边
如果真 (水印矩形.顶边 < 截图矩形.顶边)
水印矩形.高度 = 水印矩形.顶边 + 水印矩形.高度 - 截图矩形.顶边
水印矩形.顶边 = 0
如果真 (水印矩形.顶边 + 水印矩形.高度 > 截图矩形.顶边 + 截图矩形.高度)
水印矩形.高度 = 截图矩形.顶边 + 截图矩形.高度 - 水印矩形.顶边
水印矩形.顶边 = 水印矩形.顶边 - 截图矩形.顶边


子程序名返回值类型公开备 注
是否在区域内逻辑型 当前点是否在图片水印范围内
参数名类 型参考可空数组备 注
水印矩形F水印的范围
x整数型当前点横坐标
y整数型当前点纵坐标
变量名类 型静态数组备 注
返回值逻辑型 
判断 (x ≥ 水印.左边 x ≤ 水印.左边 + 水印.宽度 y ≥ 水印.顶边 y ≤ 水印.顶边 + 水印.高度)
返回值 = 真
返回值 = 假
返回 (返回值)
子程序名返回值类型公开备 注
区域截图字节集 
参数名类 型参考可空数组备 注
图片字节集
截图截图信息
变量名类 型静态数组备 注
返回值字节集 
位图GP位图 
如果真 (截图.是否截取 = )
位图.创建自字节集 (图片)
位图.复制部分 (截图.区域矩形, #像素格式_32bppARGB, 位图)
返回值 = 位图.保存到字节集 ( #图像格式_PNG )
位图.销毁 ()
返回 (返回值)

4.png

评分

参与人数 3好评 +2 精币 +3 收起 理由
把酒问天 + 1 + 2 YYDS~!
kyo9766 + 1 感谢分享,很给力!~
多多帅吧 + 1 感谢你的支持,精易有你更精彩

查看全部评分


签到天数: 2 天

发表于 7 天前 | 显示全部楼层   广东省广州市
感谢分享,支持开源!!
回复 支持 反对

使用道具 举报

发表于 2025-3-19 07:22:41 | 显示全部楼层   山东省潍坊市
感谢大神分享~!
回复 支持 反对

使用道具 举报

发表于 2025-3-17 11:26:49 | 显示全部楼层   四川省泸州市
感谢分享,支持开源!!
回复 支持 反对

使用道具 举报

结帖率:70% (7/10)

签到天数: 3 天

发表于 2025-3-16 14:32:23 | 显示全部楼层   福建省泉州市
学习学习
回复 支持 反对

使用道具 举报

结帖率:98% (108/110)

签到天数: 3 天

发表于 2025-3-16 07:25:33 | 显示全部楼层   山东省青岛市
感谢您对论坛的支持!
回复 支持 反对

使用道具 举报

结帖率:100% (53/53)

签到天数: 3 天

发表于 2025-3-16 07:21:05 | 显示全部楼层   山东省青岛市
感谢楼主分享!
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)
发表于 2025-3-15 14:23:19 | 显示全部楼层   广东省深圳市
学习一下
回复 支持 反对

使用道具 举报

结帖率:50% (1/2)

签到天数: 2 天

发表于 2025-3-15 10:38:31 | 显示全部楼层   广东省汕头市
感谢大神分享~!
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)

签到天数: 2 天

发表于 2025-3-15 08:18:28 | 显示全部楼层   山东省青岛市
直接上代码 好评啊,感谢分享
回复 支持 反对

使用道具 举报

结帖率:81% (59/73)

签到天数: 3 天

发表于 2025-3-15 08:16:34 | 显示全部楼层   广东省珠海市
感谢你的支持,精易有你更精彩
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表