Last active
August 24, 2025 07:29
-
-
Save Ending2015a/cde33e8a0b36818baec352fecb124dbf to your computer and use it in GitHub Desktop.
Photopea export all group layers (folders) into separated PNG files.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// list of number index | |
var validLayers = []; | |
// list of list of active layer index | |
var combos = []; | |
// whether to export | |
var runExport = false; | |
function GetDocName(){ | |
// var split = app.activeDocument.name.split('.'); | |
// split.pop(); | |
// var docName = split.join("."); | |
// return docName; | |
return app.activeDocument.name; | |
} | |
function SavePNG(saveFile){ | |
var pngOpts = new ExportOptionsSaveForWeb; | |
pngOpts.format = SaveDocumentType.PNG | |
pngOpts.PNG8 = false; | |
pngOpts.transparency = false; | |
pngOpts.interlaced = false; | |
pngOpts.quality = 100; | |
activeDocument.exportDocument(new File(saveFile),ExportType.SAVEFORWEB,pngOpts); | |
} | |
function exportByCombos(){ | |
for (var i=0;i<combos.length;i++){ | |
for (var j=0;j<validLayers.length;j++){ | |
layers[validLayers[j]].visible = false; | |
} | |
for (var j=0;j<combos[i].length;j++){ | |
layers[combos[i][j]].visible = true; | |
} | |
SavePNG(docName + '-' + i.toString() + '.png'); | |
} | |
} | |
function exportByLoop(){ | |
for (var i=0;i<validLayers.length;i++){ | |
for (var j=0;j<validLayers.length;j++){ | |
layers[validLayers[j]].visible = false; | |
} | |
layers[validLayers[i]].visible = true; | |
SavePNG(docName + '-' + layers[validLayers[i]].name + '.png'); | |
} | |
} | |
function ExportLayers(){ | |
var layers = app.activeDocument.layers; | |
var docName = GetDocName(); | |
if (validLayers.length == 0){ | |
for (var i=0;i<layers.length;i++){ | |
if (layers[i].layers !== null){ | |
console.log(i, layers[i].name); | |
validLayers.push(i); | |
} | |
} | |
} | |
console.log(validLayers); | |
if (runExport){ | |
if (combos.length > 0){ | |
// if combos is defined | |
exportByCombos(); | |
} | |
else{ | |
exportByLoop(); | |
} | |
} | |
} | |
ExportLayers() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment