游乐游手机版
首页/AI教程/文章详情

Photoshop内容识别填充去水印实战教程与复用技巧

时间:2026-08-15 14:05
一、背景:为什么要做这件事现在很多 AI 工具生成的图片,通常都会自带平台水印:左上角:透明文字右下角:图标 + 文字角标这些水印虽然面积不大,但对设计师来说,在交稿、出图、整理素材时,往往还是希望画面尽可能干净。市面上常见的图片去水印工具,要么需要付费、要么处理效果一般,而几乎每位设计师电脑里其实

一、背景:为什么要做这件事

现在很多 AI 工具生成的图片,通常都会自带平台水印:

用 Photoshop 内容识别填充自动去水印:一个可复用的 Skill 实践

  • 左上角:透明文字
  • 右下角:图标 + 文字角标

这些水印虽然面积不大,但对设计师来说,在交稿、出图、整理素材时,往往还是希望画面尽可能干净。市面上常见的图片去水印工具,要么需要付费、要么处理效果一般,而几乎每位设计师电脑里其实都已经装好了一个高效的“去水印工具”——Photoshop。

Photoshop 的「内容识别填充」(Edit > Fill > Content-Aware)一直都是图片去水印场景中的经典方案:只要先框选水印区域,PS 就会自动分析周边像素、纹理和背景走向,再把这部分内容尽量自然地“补”回原始画面。尤其是在缎带、渐变、城市剪影这类相对复杂的背景上,这个功能通常更稳定,最终效果也往往比普通 OpenCV 的 inpaint 修复算法更自然。

但如果每次都手动操作,流程会非常繁琐:打开图片 → 放大 → 框选 → 填充 → 保存……图片一多,处理效率就会大幅下降。

所以我把整套流程整理成了一个 Python 脚本,用来自动控制 Photoshop 完成图片去水印操作。

二、这个 Skill 能干什么

useps(Use Photoshop)是一个通过 COM 接口自动控制本地 Adobe Photoshop 的 Python 脚本,专门用于图片去水印:

自动完成的全流程

  1. 自动定位:通过 OCR 识别图片中的水印文字,自动计算水印所在位置
  2. 智能扩展:识别到右下角文字后,自动将选区向左、向上扩展,覆盖文字左侧的图形图标(因为 OCR 无法识别图形,这里最容易漏处理)
  3. 模式转换:自动把图片从索引色模式转换为 RGB 模式(否则 Photoshop 的填充命令会报错)
  4. 内容识别填充:对每个水印区域执行矩形选框 + Content-Aware Fill
  5. 保存验证:另存为新的 PNG 文件(不覆盖原图),再通过 OCR 复查水印是否已清除干净

效果数据(实测)

指标原图OpenCV 方案PS 内容识别方案
右下角图标区白色像素278623600552
水印文字残留

Photoshop 内容识别填充方案几乎达到了“肉眼看不见”的程度,剩余的少量像素其实是缎带本身的高光,并不是水印残留。

三、怎么用(三步上手)

前提

  • Windows 电脑 + 已安装 Photoshop
  • 装了 Python(3.8+)

第 1 步:安装依赖

在命令行中运行:

pip install pywin32 rapidocr_onnxruntime opencv-python-headless numpy

第 2 步:下载脚本

从仓库下载remove_watermark_ps.py,或者直接 clone:

git clone https://gitcode.com/leleloveegg/useps.git

第 3 步:运行

python remove_watermark_ps.py "你要去水印的图片.png"

运行完成后,会在同目录生成原文件名-去水印-PS版.png

四、脚本核心原理(给想改代码的人)

1. 定位 Photoshop

脚本会通过 Windows 注册表查找 Photoshop 的安装位置(HKLMSOFTWAREAdobePhotoshop<版本号>下的 ApplicationPath),如果找不到,再兜底扫描常见安装目录。

2. 控制 Photoshop:COM + ExtendScript

Python 通过win32com.client连接Photoshop.Application,然后使用DoJa vaScript()向 Photoshop 发送 ExtendScript 脚本,以实现选区、填充和保存等自动化操作。

3. 内容识别填充的正确写法

这是整个流程里最容易踩坑的部分,正确的核心代码如下:

var desc = new ActionDescriptor();desc.putEnumerated(stringIDToTypeID("using"), stringIDToTypeID("fillContents"), stringIDToTypeID("contentAware"));desc.putUnitDouble(stringIDToTypeID("opacity"), stringIDToTypeID("percentUnit"), 100.0);desc.putEnumerated(stringIDToTypeID("mode"), stringIDToTypeID("blendMode"), stringIDToTypeID("normal"));executeAction(stringIDToTypeID("fill"), desc, DialogModes.NO);

4. 水印定位

  • 文字水印:直接通过 OCR(rapidocr_onnxruntime)识别文字框,这一步相对直接。
  • 图形图标:OCR 无法识别图形本身,所以不能只围绕文字框原地处理,而要以文字框位置为基准,把区域进一步向外扩展。比如右下角水印,就需要向左扩 220px、向上扩 110px,并一直延伸到图片边缘。

五、踩坑记录(给同样被 PS 自动化坑过的人)

这套自动化去水印流程里遇到的问题,已经完整记录在 SKILL.md 中。这里先挑几个最典型、也最容易反复踩中的问题说一下。


坑 1:fill 命令报 8800「命令'填充'当前不可用」

常见有两个原因:

  • 文档是索引色模式(IndexedColor,枚举值 2)——Photoshop 打开部分 PNG 时会出现这种情况,必须先转换为 RGB
  • 使用了旧教程里的putReference写法——正确的官方写法不需要 reference,直接使用putEnumerated(using,...)

坑 2:右下角选区必须延伸到图片底部

即梦水印下方的缎带高光会一直延伸到图片底部边缘。如果选区只框到文字底部,高光区域会残留一大片(实测白色像素约为 11000)。因此选区需要取到(x0-220, y0-110, 图片宽, 图片高)

坑 3:cv2.imwrite 不支持中文路径

保存对比图时,如果使用cv2.imwrite,可能会静默失败(不报错,但文件没有成功写出)。这里必须改用 PIL 的Image.sa ve()

六、后续计划

  • 支持批量处理整个文件夹中的图片
  • 支持自定义水印区域
  • 补充 Mac 版方案(Photoshop 在 Mac 上需要使用 AppleScript 控制)

免责声明:为了让工作流程更高效而请 AI 梳理的一个 SKILL,输出了相应使用规则,如有问题,请联系删除。

来源:https://bbs.huaweicloud.com/blogs/483821
上一篇Agent上下文预算优化:从Token失控到可观测可降级调用链 下一篇国际语音预警接口接入方法与实现流程
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
CAD零基础入门教程:坐标输入、图层管理与基础绘图命令
AI教程 · 2026-09-01

CAD零基础入门教程:坐标输入、图层管理与基础绘图命令

本文面向CAD零基础学习者,系统讲解坐标输入、图层管理与基础绘图命令的核心用法。通过分步实操与常见问题排查,帮助新手建立精确绘图习惯,掌握规范出图的基础能力。

CAD从入门到项目交付:绘图、标注、图块与实战工作流
AI教程 · 2026-09-01

CAD从入门到项目交付:绘图、标注、图块与实战工作流

掌握CAD的核心在于建立“画得准、标得清、复用快、交付稳”的工作流。本文提供从环境设置、高频命令组合、标注规范、图块标准化到项目分阶段交付的完整路径,帮助初学者避免常见返工陷阱,独立完成可检查、可复用、可打印的工程图纸。

Claude Code 登录指南:个人、Teams 与企业账号区分与授权步骤
AI教程 · 2026-09-01

Claude Code 登录指南:个人、Teams 与企业账号区分与授权步骤

本文详细解析 Claude Code 登录前的账号类型区分方法,涵盖个人订阅、Teams 席位与企业 Enterprise 席位的授权路径差异。提供终端登录命令、环境变量排查及常见异常处理步骤,帮助用户快速完成正确授权并避免登录路径混淆。

Claude Code 文件修改前的权限模式配置与命令审批指南
AI教程 · 2026-09-01

Claude Code 文件修改前的权限模式配置与命令审批指南

本文详细介绍Claude Code在修改文件前的权限模式配置方法,包括defaultMode可选值、permissions allow与deny规则设置、多层级配置文件管理以及 status验证技巧,帮助开发者安全高效地使用AI编程助手。

Claude Code接入VS Code后先测扩展和终端命令
AI教程 · 2026-09-01

Claude Code接入VS Code后先测扩展和终端命令

在VS Code中接入Claude Code后,建议优先验证扩展面板与集成终端两条入口。本文提供标准检查顺序、关键命令与常见故障排查路径,帮助你快速确认环境就绪,避免后续开发受阻。