我的PSD结构
Group myname
layer -> Visible
Layer -> Hidden
Group 2randomname
layer -> Visible
Layer -> Hidden
然后继续...
我正在尝试将导出组另存为png,在使用文件->导出->图层到文件时可以正常工作,但是我的问题是它没有使用组名,我想为每个文件包括组名,这是选择所有组并右键单击->导出,然后选择PNG时,这些图层都具有组名,但问题在于它会自动修剪画布,并且没有避免修剪的选项。
是否有任何代码或脚本可以做到这一点?任何指示或帮助表示赞赏。
答案 0 :(得分:0)
我猜是这样吗?
function main()
{
var topLayers = activeDocument.layers, // will export all top level layers (groups, backgorund layer, etc)
exportFolder = Folder.selectDialog();
if (exportFolder == null) return false;;
for (var i = 0; i < topLayers.length; i++)
{
activeDocument.activeLayer = topLayers[i];
toggleVisibility();
savePng24(topLayers[i].name);
toggleVisibility();
}
function savePng24(fileName)
{
var pngOpts = new ExportOptionsSaveForWeb;
pngOpts.format = SaveDocumentType.PNG
pngOpts.PNG8 = false;
pngOpts.transparency = true;
activeDocument.exportDocument(new File(exportFolder + "/" + fileName + ".png"), ExportType.SAVEFORWEB, pngOpts);
}; // end of savePng24()
function toggleVisibility()
{
var desc = new ActionDescriptor();
var list = new ActionList();
var ref = new ActionReference();
ref.putEnumerated(cTID('Lyr '), cTID('Ordn'), cTID('Trgt'));
list.putReference(ref);
desc.putList(cTID('null'), list);
desc.putBoolean(cTID('TglO'), true);
executeAction(cTID('Shw '), desc, DialogModes.NO);
}; // end of toggleVisibility()
function cTID(s)
{
return app.charIDToTypeID(s);
};
function sTID(s)
{
return app.stringIDToTypeID(s);
};
}
app.activeDocument.suspendHistory("temp", "main()");