photoshop 批量导出每个图层为独立图像
// 导出所有图层为单独文件,并以图层名命名 #target photoshop // 检查是否有打开的文档 if (app.documents.length === 0) { alert("请先打开一个包含多个图层的PSD文件!"); } else { var doc = app.activeDocument; // 创建导出文件夹 var outputFolder = Folder.selectDialog("请选择保存导出的文件夹"); if (outputFolder == null) { alert("未选择文件夹,脚本已取消!"); } else { // 保存原始状态 var originalRulerUnits = app.preferences.rulerUnits; app.preferences.rulerUnits = Units.PIXELS; // 遍历所有图层并导出 for (var i = 0; i < doc.layers.length; i++) { var layer = doc.layers[i]; if (layer.typename === "ArtLayer" && layer.visible) { // 仅导出可见图层 var layerName = layer.name.replace(/[\\\/:*?"<>|]/g, ""); // 移除非法字符 var layerFile = new File(outputFolder + "/" + layerName + ".png"); // 复制图层并保存 duplicateAndSaveLayer(doc, layer, layerFile); } } // 恢复原始状态 app.preferences.rulerUnits = originalRulerUnits; alert("所有图层已成功导出!"); } } // 复制当前图层并保存为文件 function duplicateAndSaveLayer(doc, layer, file) { var tempDoc = app.documents.add(doc.width, doc.height, doc.resolution, layer.name, NewDocumentMode.RGB, DocumentFill.TRANSPARENT); app.activeDocument = doc; layer.copy(); app.activeDocument = tempDoc; tempDoc.paste(); var pngSaveOptions = new PNGSaveOptions(); tempDoc.saveAs(file, pngSaveOptions, true, Extension.LOWERCASE); tempDoc.close(SaveOptions.DONOTSAVECHANGES); }
将上述内容保存为:ExportLayersAsFiles.jsx
- 然后,打开Photoshop。
- 点击菜单
文件 > 脚本 > 浏览...
,选择保存的.jsx
文件。 - 运行脚本即可。