(双击画板)来来来,直接上硬核代码!用易语言自带的画板组件就能搞定,根本不用PS。看这个暴力改色方案:
窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_启动窗口 | | | |
画板1. 载入图片 ("C:\你的图片.jpg" ) 局部_目标色 = #粉色 局部_替换色 = #蓝色 计次循环首 (画板1.宽度, x ) 计次循环首 (画板1.高度, y )  当前颜色 = 画板1. 取点颜色 (x-1, y-1 )   如果真 (颜色近似 (当前颜色, 局部_目标色, 30 ))    画板1. 置点颜色 (x-1, y-1, 局部_替换色 )   计次循环尾 处理事件 ()  计次循环尾 画板1. 刷新显示 ()
三个关键细节:
精准取色:先用画板自带的取色工具点选图片中的粉色区域,记下颜色值替换#粉色
颜色容差计算:自己写个判断函数,类似这样: 返回 (取绝对值 (取红色值 (原色 ) - 取红色值 (目标色 )) ≤ 容差 且 取绝对值 (取绿色值 (原色 ) - 取绿色值 (目标色 )) ≤ 容差 且 取绝对值 (取蓝色值 (原色 ) - 取蓝色值 (目标色 )) ≤ 容差 )
性能优化:如果图片太大,把双重循环改成画板1.复制到内存画板操作,改完再贴回来
避坑指南:
遇到改色后边缘有毛刺,把容差参数调到50左右
改完记得用画板1.快照到文件()保存成果
如果原图有抗锯齿效果,建议改色后用画板1.模糊(1)柔化边缘
实测改三联单背景色从粉到蓝只要0.3秒,比PS批处理还快!要是想玩高级的,还可以用GDIPlus库的色相旋转功能,直接整体换色调。
|