脚本插件编写:自定义脚本以增强PS
脚本插件编写:自定义脚本以增强PS
甜姐姐今天咱聊点“看起来贼专业、其实入门不难”的东西:给Photoshop写脚本。
很多同学的痛点是:同一套动作每天点八百遍,手都快点出火星子了——比如导出一堆图、批量加水印、统一改尺寸、批量建图层……这时候脚本就像你给PS请了个小助理:你说一遍,它帮你干一百遍。
先把“高级感”的本质说清楚:脚本不是为了装X,而是为了稳定、可重复、少出错。能把你的流程“收紧”,这才是效率的高级感。
一、脚本到底是啥?跟动作(Action)有什么区别
把PS想成厨房:
- 动作
像“照着菜谱按步骤点按钮”,好处是简单;缺点是遇到分支情况就像跟没睡醒似的——不太会变通。 - 脚本
像“你写一套规则”,它能判断、能循环、能批量,甚至能弹窗问你参数,属于能动脑子的那种。
脚本在PS里主要用的是ExtendScript(JS语法),文件后缀常见是.jsx。简单理解:就是JavaScript写的PS自动化。
常见误区:一上来就要写“超级插件”。别急,先从一个按钮搞定一个小重复开始,成就感会把你越推越远。
二、准备工作:你需要的工具(不花钱也能搞)
- Photoshop
(废话但必须说)。 - 代码编辑器
:VS Code 就很好用。 - 脚本放置位置
:PS脚本通常放到安装目录的 Scripts 文件夹里。
脚本菜单入口:PS顶部菜单 文件 > 脚本。你把.jsx放进去后,重启PS一般就能看到。
小技巧:如果你不想动安装目录,也可以先用 文件 > 脚本 > 浏览… 直接运行某个.jsx,适合边写边试。
三、从0到1:写一个“新建文档 + 自动命名”的脚本
目的先说清楚:咱做一个脚本,弹窗问你宽高,然后自动新建文档,并把标题按规则命名。这个属于“练手界的天花板基础款”。
步骤1:新建一个 .jsx 文件
在电脑任意位置建文件:SweetNewDoc.jsx
步骤2:复制下面代码(能跑的那种)
#target photoshopapp.bringToFront();// 1) 弹窗输入var w = prompt("甜姐姐问你:宽度(px)填多少?", "1080");if (w == null) { alert("你取消了,那我也不干了哈。"); return; }var h = prompt("高度(px)填多少?", "1080");if (h == null) { alert("你取消了,那我也不干了哈。"); return; }// 2) 转数字,避免字符串捣乱w = Number(w);h = Number(h);if (!w || !h) { alert("宽高得是数字哦,不然PS会一脸懵。"); return;}// 3) 新建文档var docName = "Sweet_" + w + "x" + h;var doc = app.documents.add(w, h, 72, docName, NewDocumentMode.RGB, DocumentFill.WHITE);alert("搞定!已创建:" + doc.name);
步骤3:在PS里运行它
PS:文件 > 脚本 > 浏览… 选择刚刚的 SweetNewDoc.jsx。
你会发现脚本这玩意儿特别像:你给PS下命令,它就像拽橡皮泥一样按你说的形状来,关键是它不会嫌你烦。
四、实用大招:批量导出PNG(透明背景也能保住)
目的:把当前打开的文档导出成PNG到指定文件夹。很多人导出靠“另存为”点到怀疑人生,这个脚本就是拯救你鼠标的。
步骤1:核心逻辑(可直接用)
#target photoshopapp.bringToFront();if (app.documents.length === 0) { alert("没有打开的文档,我导出个寂寞呀。"); return;}var doc = app.activeDocument;// 选择导出文件夹var outFolder = Folder.selectDialog("选择导出到哪个文件夹:");if (!outFolder) return;// 组装文件名var baseName = doc.name.replace(/\.[^\.]+$/, ""); // 去扩展名var outFile = new File(outFolder.fsName + "/" + baseName + ".png");// PNG导出参数var opt = new ExportOptionsSaveForWeb();opt.format = SaveDocumentType.PNG;opt.PNG8 = false; // true=PNG8, false=PNG24opt.transparency = true; // 保留透明opt.interlaced = false;opt.quality = 100;doc.exportDocument(outFile, ExportType.SAVEFORWEB, opt);alert("导出完成:" + outFile.fsName);
步骤2:你可以怎么用在真实场景里
-
做表情包/贴纸:透明底PNG一键出。 -
做UI切图:避免漏导、导错格式。 -
做电商素材:统一输出规格,少翻车。
注意:这段是导出“当前文档”。要做“批量文件夹导出”,就得加“打开文件-循环-导出-关闭”的流程。别慌,后面你练熟了再升级。
五、把脚本变成“像插件一样好用”:放进菜单 + 设快捷方式
脚本最爽的用法是:别每次都浏览文件,要让它像工具一样随手拿。
方法1:放到Scripts目录(重启PS生效)
-
把.jsx复制到PS的 Presets/Scripts 目录。 -
重启后在 文件 > 脚本 里就能看到脚本名字。
方法2:给脚本分配快捷键(效率直接起飞)
PS:编辑 > 键盘快捷键…
-
找到:文件 > 脚本 -
选中你的脚本 -
设置一个你顺手的组合键(比如 Ctrl + Alt + P)
甜姐姐的小建议:快捷键别设太花,能记住才是王道。脚本是帮你省脑子,不是让你背考研。
六、写脚本最容易踩的坑(提前给你避雷)
- 没重启PS
:放进Scripts目录后菜单没出现?十有八九是没重启。 - 单位混乱
:PS有时候会用英寸、厘米等单位。入门阶段尽量用像素,或者明确指定。 - 文件名带特殊符号
:导出时路径拼接会出错,建议先做“清理文件名”。 - 脚本写太猛
:一上来就批量删图层、批量关闭不保存——建议先加 alert() 做提示,稳一点。
七、结尾:脚本的“高级感”,其实来自克制
说到底,脚本不是越复杂越牛,而是越刚好解决你的重复劳动越牛。
甜姐姐给你一个练习路线(由易到难):
-
第1天:弹窗输入 + 新建文档(今天这篇你就能做)。 -
第3天:导出PNG/JPG + 自动命名规则。 -
第7天:批量打开文件夹图片 → 统一尺寸 → 导出 → 自动关闭。 -
第14天:加UI面板(ScriptUI)做成“真·小插件”。
最后一句重点:做脚本要“克制”。先把一个小功能做到稳定顺滑,再加第二个。别一口气堆十个按钮,最后自己都不敢点。
如果你想让甜姐姐下一篇写“批量文件夹导出(带尺寸、品质、命名规则)”或者“ScriptUI做一个小面板”,你告诉我你最常做的重复动作是什么,我按你的工作流来写,保证实用。
夜雨聆风
