零基础用 Python 自动化操作 Photoshop?photoshop-python-api 十分钟上手攻略
【免费下载链接】photoshop-python-apiPython API for Photoshop.项目地址: https://gitcode.com/gh_mirrors/ph/photoshop-python-api
每天重复打开图、调字号、导出 JPG,手指在 Photoshop 里点来点去,一坐就是一下午——这大概是很多设计师和运营同学的真实日常。而photoshop-python-api这个开源工具包,正好可以帮你把这份"机械劳动"交给 Python:几行代码就能新建画布、写入文字、控制图层、批量导出,让 Photoshop 自动化的门槛降到几乎为零。本文不堆术语,只讲怎么快速跑起来。
先讲个故事:当"重复劳动"遇上"一行代码"
运营小林上周接到一个任务:把 200 张海报里的二维码全部换掉,再统一导出成 JPG。手动操作的话,每张图要经历"打开→找到图层→删除→拖入新图→对齐→另存"六个动作,按 2 分钟一张算,整整要花 6 个多小时,而且越做越容易手滑出错。
后来他用 photoshop-python-api 写了个十几行的脚本,把六个动作全部写进循环里,跑一次只花了几分钟。剩下的时间,小林用它把同类需求整理成了一个模板,从此这类活再也没花超过一刻钟。这,就是"给软件装上遥控器"的威力。
换个视角:把 Photoshop 当成一台"可编程的机器"
用这个库之前,先建立一个心智模型:PS 里你能手动做的每件事,几乎都能翻译成一句 Python 代码。按使用场景分,它主要帮你搞定四类事情:
| 应用场景 | 你能做什么 | 对应模块 |
|---|---|---|
| 出图流水线 | 自动建画布、设尺寸/分辨率/命名 | photoshop/api/_document.py |
| 图层指挥中心 | 增删图层、改透明度、旋转平移、开关可见性 | photoshop/api/_artlayer.py |
| 多格式导出 | JPG/PNG/PSD/TIFF 一键切换,还能逐层导出 | photoshop/api/save_options/ |
| 颜色精确控制 | RGB/CMYK/HSB 数值化调色,告别肉眼对比 | photoshop/api/colors/ |
划重点:它不改变 PS 的任何操作习惯,只是把"手点"变成"代码调用",所以你已有的设计流程完全不用推翻。
动手前先避坑:这份环境清单请过一遍
开始之前,先对照下面这张表自查,能省掉一半的报错时间:
- ✅操作系统:仅支持 Windows(底层依赖 Windows 的 COM 组件,macOS/Linux 上装不了)
- ✅Python 版本:3.8 及以上
- ✅Photoshop:CC2017 至 2025 各版本均可(官方已逐个验证)
- ✅pip:通常随 Python 一起安装,无需额外配置
你可能想问:为什么只能在 Windows 上跑?简单说,这个库是通过 Photoshop 暴露的 COM 接口来"遥控"软件的,而 COM 是 Windows 的原生技术。所以别在 Mac 上折腾,直接找台 Windows 电脑开工。
三步完成环境配置,一条命令开始自动化
安装比想象中简单,核心就三步:
第一步:安装依赖包
pip install photoshop_python_api第二步:启动 Photoshop
保持 Photoshop 在前台运行即可,不需要额外开启任何"脚本模式"。
第三步:跑一段验证脚本
from photoshop import Session with Session() as ps: print(f"已连接 Photoshop,版本:{ps.app.version}")如果终端能打印出版本号,说明环境已经打通,可以进入实战了。
实战演练:10 分钟写出你的第一个自动化脚本
光说不练假把式,我们直接写一个"生成品牌色文字 Banner"的小程序。目标:新建 1280×720 画布,写入一行橙色文字,并导出为 JPG。
from photoshop import Session with Session() as ps: # ① 新建画布:宽 1280、高 720、分辨率 72 doc = ps.app.documents.add( width=1280, height=720, resolution=72, name="banner" ) # ② 定义一个品牌色(橙红色) brand = ps.SolidColor() brand.rgb.red = 230 brand.rgb.green = 74 brand.rgb.blue = 25 # ③ 新建文字图层并写入内容 layer = doc.artLayers.add() layer.kind = ps.LayerKind.TextLayer # 声明这是文字图层 layer.textItem.contents = "Hello, Automation!" layer.textItem.position = [300, 320] # 文字坐标 layer.textItem.size = 56 # 字号 layer.textItem.color = brand # 文字颜色 # ④ 保存为 JPG(asCopy 表示"另存",不改动原文档) doc.saveAs("D:/banner.jpg", ps.JPEGSaveOptions(quality=10), asCopy=True) ps.echo("banner 已生成")运行后你会看到:Photoshop 里自动出现一个 1280×720 的新文档,中央是一行 56 号的橙红色英文文字,同时D:/banner.jpg已经生成,控制台输出banner 已生成。
小提醒:保存路径建议写绝对路径(如
D:/xxx.jpg),避免相对路径在切换工作目录时报"找不到文件"。
进阶玩法:打开旧工程、批量改图、多文档齐头并进
如果你已经能跑通上面的脚本,恭喜,你已经掌握了八成 API。剩下的进阶功能,几乎都围绕Session的几个参数展开:
| 参数 | 作用 | 示例 |
|---|---|---|
file_path+action="open" | 打开已有 PSD 文件再处理 | Session("D:/a.psd", action="open") |
action="new_document" | 会话开始时自动新建文档 | Session(action="new_document") |
action="document_duplicate" | 复制当前活动文档 | Session(action="document_duplicate") |
auto_close=True | 退出会话时自动关闭文档 | Session("a.psd", action="open", auto_close=True) |
举个批量场景:把某个 PSD 里的每个图层单独导出成 PNG,供前端切图使用,核心代码只有这么一小段:
from photoshop import Session with Session("D:/design/页面.psd", action="open") as ps: doc = ps.active_document for i, layer in enumerate(doc.layers): layer.visible = True doc.saveAs(f"D:/export/layer_{i}.png", ps.PNGSaveOptions(), asCopy=True) layer.visible = False这段循环的精髓在于"先开可见性、导出、再关掉",逐个图层出图互不干扰。更稳妥的完整版(含可见性恢复的 try-finally 写法)可以直接参考 examples/export_layers_as_png.py。
学习资源地图:文档、示例与源码去哪找
工具再好,找不到资料也是白搭。这份"资源地图"按需取用:
- 官方使用指南:docs/ 目录,含
index.md与changelog.md,先读 index 建立整体认知 - 现成示例脚本:examples/ 里躺着 30+ 个可跑通的例子,从新建文档、旋转图层到批处理、执行动作脚本全覆盖,遇到不会写的操作,先来这翻翻
- 核心 API 源码:photoshop/api/,文档查不到的细节,直接看源码最准
- 会话封装入口:photoshop/session.py,所有
Session参数的实现都在这 - 颜色系统:photoshop/api/colors/,RGB/CMYK/HSB 各模式的定义一目了然
过来人的 5 条避坑经验
最后,把社区里踩过的坑浓缩成 5 条,能帮你少走很多弯路:
- 平台别纠结:macOS/Linux 装不上是设计使然,不要在虚拟机上浪费时间,直接上 Windows。
- 先开 PS 再跑脚本:Session 连接的是"正在运行的 Photoshop",PS 没启动,代码一执行就报连接错误。
- 保存务必用
asCopy=True:它表示"另存为新文件",如果不传,脚本可能直接覆盖你正在编辑的原 PSD,追悔莫及。 - 版本差异用参数兜底:老版本 PS 上个别属性可能不存在,可以用
Session(ps_version="2021")显式指定版本,降低兼容问题。 - 批量操作记得善后:像导出图层这类脚本,把"恢复原状"写进
finally里,避免跑完一遍,图层的可见性全乱套。
写在最后:现在就动手试试
自动化这件事,最难的从来不是技术,而是"迈出第一步"。今天这篇文章里的代码,从安装到出图不超过十分钟,跑通一次之后,你会发现原本繁琐的 Photoshop 操作,正在变成一个又一个可以随手复用的 Python 函数。
下一次再接到"200 张图要处理"的需求时,别急着打开 PS 手动开工——先想想,这件事能不能交给 photoshop-python-api 替你完成?动手吧,你的双手值得被解放出来去做更有创意的事。🎨
【免费下载链接】photoshop-python-apiPython API for Photoshop.项目地址: https://gitcode.com/gh_mirrors/ph/photoshop-python-api
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考