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文件。 - 运行脚本即可。
浙公网安备 33010602011771号