PS自动导出图层文件

// 用户选择导出的文件夹
var outputFolder = Folder.selectDialog("选择输出的文件夹");

var doc = app.activeDocument;

var layers = app.activeDocument.layers;

app.activeDocument.changeMode(ChangeMode.RGB);

// 遍历所有父级层。
for (var i = 0; i < layers.length; i++) {
    var childlayer = layers[i].layers;

    // 检查图层组是否可见
    if (layers[i].visible) {
        FindLayers(outputFolder + "/" + layers[i].name, layers[i]);
    }
}

// 递归调用每个层级,遇到图层就导出,否则继续递归
function FindLayers(parentname, _currentLayer) {
    if (_currentLayer instanceof LayerSet) {
        // 检查图层组是否可见
        if (_currentLayer.visible) {
            for (var i = 0; i < _currentLayer.layers.length; i++) {
                nowdir = parentname + "/";
                checkFolder(nowdir);
                nowdir += _currentLayer.layers[i].name;
                FindLayers(nowdir, _currentLayer.layers[i]);
            }
        }
    } else {
        SolveLayer(_currentLayer, parentname);
    }
}

// 单独导出图片
function SolveLayer(mylayer, filename) {
    mylayer.copy();
    var bounds = mylayer.bounds;
    var posx = bounds[0].toString();
    posx = posx.replace(' ', '_');
    var posy = bounds[1].toString();
    posy = posy.replace(' ', '_');

    var width = bounds[2] - bounds[0];
    var height = bounds[3] - bounds[1];

    app.documents.add(width, height, 72, "myDocument", NewDocumentMode.RGB, DocumentFill.TRANSPARENT);
    app.activeDocument.paste();

    var newfilename = filename + ".png";
    var file = new File(newfilename);

    // 使用ExportOptionsSaveForWeb类
    var exportOptions = new ExportOptionsSaveForWeb();
    exportOptions.format = SaveDocumentType.PNG;
    exportOptions.PNG8 = false; // 使用PNG-24格式
    exportOptions.quality = 100; // 质量,范围0-100
    exportOptions.transparency = true;

    // 导出
    app.activeDocument.exportDocument(file, ExportType.SAVEFORWEB, exportOptions);

    app.activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}

function checkFolder(path) {
    var folder = Folder(path);
    if (!folder.exists) folder.create();
}

1:创建一个新的记事本,然后保存上方代码。保存记事本文件后缀名为jsv

2:然后打开ps,文件-脚本-浏览,等待自动化运行

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值