You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Photoshop脚本需求:按名称导出指定LayerSet为PNG

Photoshop脚本:批量合并图层组可见层并导出PNG(事后恢复原状)

我有如图所示的图层组(LayerSet),希望通过复制的方式合并每个图层组内的可见图层,并导出为PNG文件,得到1.png、2.png、3.png、4.png和5.png。我已经能通过名称获取图层组,但不知道后续如何保存,现有代码片段如下,同时需要在完成导出后删除所有合并的图层,恢复原状:

var layersetNames = ["1", "2", "3", "4", "5"];
for (n = 0; n < layersetNames.length; n++) {
    var layersetName = layersetNames[n];

    // get layerset by name
    var layerset = app.activeDocument.layerSets.getByName(layersetName);
    
    // copy & merge visible layers within this layerset

    // save the merged layer as .png
    
}

// after done saving, delete all the merged layers as if nothing had happened.

完整实现代码

var layersetNames = ["1", "2", "3", "4", "5"];
var mergedLayers = []; // 存储所有合并后的图层,用于后续删除
var savePath = app.activeDocument.path; // 使用当前文档所在路径作为导出路径

for (var n = 0; n < layersetNames.length; n++) {
    var layersetName = layersetNames[n];
    var layerset = app.activeDocument.layerSets.getByName(layersetName);

    // 复制并合并当前图层组的可见层
    app.activeDocument.activeLayer = layerset.layers[0]; // 选中组内第一个图层
    layerset.mergeVisibleLayers(); // 合并组内可见层,生成新图层
    var mergedLayer = app.activeDocument.activeLayer;
    mergedLayer.name = "merged_" + layersetName; // 给合并层命名,方便识别
    mergedLayers.push(mergedLayer); // 加入待删除列表

    // 将合并层导出为PNG
    var exportOptions = new ExportOptionsSaveForWeb();
    exportOptions.format = SaveDocumentType.PNG;
    exportOptions.PNG8 = false; // 导出PNG-24格式
    exportOptions.transparency = true; // 保留图层透明度(按需调整)
    exportOptions.quality = 100;

    var exportFile = new File(savePath + "/" + layersetName + ".png");
    app.activeDocument.exportDocument(exportFile, ExportType.SAVEFORWEB, exportOptions);
}

// 删除所有合并的图层,恢复文档初始状态
for (var i = mergedLayers.length - 1; i >= 0; i--) {
    mergedLayers[i].remove();
}

关键步骤说明

  • 合并可见层:通过mergeVisibleLayers()方法直接合并目标图层组内的可见图层,生成的新图层自动成为当前活动层,我们将其存入数组以便后续统一清理。
  • PNG导出配置:用ExportOptionsSaveForWeb设置导出参数,包括格式、透明度保留、画质等,可根据实际需求调整。
  • 恢复原状:从后往前遍历合并图层数组并删除,避免因图层顺序变动导致的索引错乱,确保文档回到操作前的状态。

内容的提问来源于stack exchange,提问作者MerelyLearning

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 23:33:22