零基础用 Python 自动化操作 Photoshop?photoshop-python-api 十分钟上手攻略
2026/9/7 4:42:23 网站建设 项目流程

零基础用 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.mdchangelog.md,先读 index 建立整体认知
  • 现成示例脚本:examples/ 里躺着 30+ 个可跑通的例子,从新建文档、旋转图层到批处理、执行动作脚本全覆盖,遇到不会写的操作,先来这翻翻
  • 核心 API 源码:photoshop/api/,文档查不到的细节,直接看源码最准
  • 会话封装入口:photoshop/session.py,所有Session参数的实现都在这
  • 颜色系统:photoshop/api/colors/,RGB/CMYK/HSB 各模式的定义一目了然

过来人的 5 条避坑经验

最后,把社区里踩过的坑浓缩成 5 条,能帮你少走很多弯路:

  1. 平台别纠结:macOS/Linux 装不上是设计使然,不要在虚拟机上浪费时间,直接上 Windows。
  2. 先开 PS 再跑脚本:Session 连接的是"正在运行的 Photoshop",PS 没启动,代码一执行就报连接错误。
  3. 保存务必用asCopy=True:它表示"另存为新文件",如果不传,脚本可能直接覆盖你正在编辑的原 PSD,追悔莫及。
  4. 版本差异用参数兜底:老版本 PS 上个别属性可能不存在,可以用Session(ps_version="2021")显式指定版本,降低兼容问题。
  5. 批量操作记得善后:像导出图层这类脚本,把"恢复原状"写进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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询