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號