如何通过Photoshop动作或脚本批量生成带1-48编号的按钮图片?
如何用Photoshop批量生成带数字的按钮图片(1-48)
你这个批量生成带递增数字按钮的需求,用Photoshop JavaScript脚本比Action要合适得多——Action本质是录制固定操作,没法自动帮你把文本从1递增到48,而脚本可以轻松实现循环更新文本+批量保存的自动化流程。
下面是具体的实现步骤:
一、前期准备
确保你的PS文件满足两个条件:
- 有一个命名为"TEXT"的文本图层(名字一定要准确,脚本会根据这个名字找图层),并且已经调好字体、大小、位置等样式;
- 有"White Button image"图层,位置已经摆放妥当。
二、编写并运行脚本
- 打开文本编辑器(比如记事本、VS Code),复制下面的代码:
// 定义数字范围(从1到48) var startNum = 1; var endNum = 48; // 获取当前打开的PS文档 var doc = app.activeDocument; // 查找名为"TEXT"的文本图层 var textLayer = null; for (var i = 0; i < doc.layers.length; i++) { if (doc.layers[i].name === "TEXT" && doc.layers[i].kind === LayerKind.TEXT) { textLayer = doc.layers[i]; break; } } // 检查是否找到目标图层,没找到就弹窗提示 if (textLayer === null) { alert("找不到名为'TEXT'的文本图层,请检查图层名称!"); throw new Error("Missing TEXT layer"); } // 循环生成每张图片 for (var num = startNum; num <= endNum; num++) { // 更新文本图层的内容为当前数字 textLayer.textItem.contents = num.toString(); // 设置保存路径(把这里改成你想要保存的文件夹路径,比如"~/Desktop/Buttons/w" + num + ".png") var savePath = new File("~/Desktop/ButtonImages/w" + num + ".png"); // PNG导出设置(非交错格式,适合网页或常规使用) var pngOptions = new PNGSaveOptions(); pngOptions.interlaced = false; // 保存当前文档为PNG doc.saveAs(savePath, pngOptions, true, Extension.LOWERCASE); } // 完成后弹窗提示 alert("批量生成完成!一共生成了" + (endNum - startNum + 1) + "张图片");
- 把代码里的
savePath改成你自己的保存路径(比如你想存在桌面的ButtonImages文件夹里,记得先创建好这个文件夹)。 - 保存文件,后缀名设为
.js(比如BatchButtonGenerator.js)。 - 打开你的PS文件,然后点击顶部菜单:
文件 > 脚本 > 浏览,选择刚才保存的.js文件,点击运行即可。
三、为什么不推荐用Action?
Action只能录制你手动操作的固定步骤,比如你录制“修改文本为1→保存为w1.png”,但没法自动把文本改成2、3……每次都要手动修改文本再重新录制,完全达不到自动化的目的,效率极低。而脚本可以一次性完成所有循环操作,全程不用手动干预。
内容的提问来源于stack exchange,提问作者Seth Haberman
相关产品推荐
相关产品推荐

