























// 导出所有图层为单独文件,并以图层名命名
#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
文件 > 脚本 > 浏览...,选择保存的 .jsx 文件。此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。