// 用户选择导出的文件夹
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,文件-脚本-浏览,等待自动化运行