Photoshop CS6 Export Nested Layers to PNG? -
i have psd contains 100s of layers. grouped individual elements within groups (nested).
how export png individual groups (with nested layers inside of them)?
i don't want run export layers png script, need export individual nested groups (layers) png. i've found few other 3rd party scripts, export everything. need export ones i've selected.
thanks in advance
this script should want. works when have group want selected (not layer within group) i've not extensively tested , i'm assuming don't have groups within groups (which becomes headache)
// export png group srcdoc = app.activedocument; var alllayers = new array(); var selectedlayer = srcdoc.activelayer; var thelayers = collectalllayers(app.activedocument, 0); var groupname = ""; // function collect layers function collectalllayers (theparent, level) { (var m = theparent.layers.length - 1; m >= 0; m--) { var thelayer = theparent.layers[m]; // apply function layersets; if (thelayer.typename == "layerset") { var gocode = false; alllayers.push(level + thelayer.name); groupname = thelayer.name // alert(level + " " + thelayer.name) collectalllayers(thelayer, level + 1) var subdoc = srcdoc.layers[m]; //alert(subdoc) var numofsublayers = subdoc.layers.length; //alert(numofsublayers) (var j = numofsublayers -1; j >= 0 ; j--) { if (subdoc.layers[j].typename == "artlayer") { // if selected (active) layer in group if (thelayer == selectedlayer) { var mylayername = subdoc.layers[j].name srcdoc.activelayer = subdoc.layers[j]; // alert("selected: " + mylayername + " in " + groupname) processlayer(mylayername) //selectalllayersingroup(groupname) } } } } } } function processlayer(alayername) { // duplicate image new document // ======================================================= var id2784 = charidtotypeid( "mk " ); var desc707 = new actiondescriptor(); var id2785 = charidtotypeid( "null" ); var ref508 = new actionreference(); var id2786 = charidtotypeid( "dcmn" ); ref508.putclass( id2786 ); desc707.putreference( id2785, ref508 ); var id2787 = charidtotypeid( "nm " ); desc707.putstring( id2787, alayername ); var id2788 = charidtotypeid( "usng" ); var ref509 = new actionreference(); var id2789 = charidtotypeid( "lyr " ); var id2790 = charidtotypeid( "ordn" ); var id2791 = charidtotypeid( "trgt" ); ref509.putenumerated( id2789, id2790, id2791 ); desc707.putreference( id2788, ref509 ); executeaction( id2784, desc707, dialogmodes.no ); // create new layer var layerref = app.activedocument.artlayers.add() layerref.name = "temp" layerref.blendmode = blendmode.normal //merge visible // ======================================================= var id1435 = charidtotypeid( "mrgv" ); executeaction( id1435, undefined, dialogmodes.no ); // set filepath , filename source path filepath = srcdoc.path + '/' + app.activedocument.name + '.png'; // save out image var pngfile = new file(filepath); pngsaveoptions = new pngsaveoptions(); pngsaveoptions.embedcolorprofile = true; pngsaveoptions.formatoptions = formatoptions.standardbaseline; pngsaveoptions.matte = mattetype.none; pngsaveoptions.quality = 1; activedocument.saveas(pngfile, pngsaveoptions, false, extension.lowercase); // alert(filepath) // close save png app.activedocument.close() // selects document that's been open longest app.activedocument = srcdoc; }
Comments
Post a Comment