Creating merged output based on multiple layers.
i have file 4 different layer groups. 1 layer shading layer applied on top of every layer. other 3 layers contain i'd able automate/script 1 layer each group can merged 1 exported tif file, ideally named title of each layer (ie 01blue-02green-03yellow.tif).
right select layers want use, apply custom action exports tif. have rename file after. laborious, , make & again make mistake layers selected.
i'm running cs4
thanks!
jess,
as understanding of want:
i made psd following layers (from bottom up) background (white), blue (a layer blue on - layer name "blue"), green (a layer green on - layer name "green") , red (a layer red on - layer name, guessed "red"). script save out layers, red, blue , green tiffs layername filename
this script work assumes couple of things:
1, top layer shading layer,
2, background included.
wasn't sure if ment "groups" in number of things or layersets (layer groups) exported blank
// tiff export shaded layers // use @ own risk // call source document var srcdoc = app.activedocument; var numoflayers = srcdoc.layers.length; // main loop starts here (var = numoflayers -2; >= 1 ; i--) { //var templayer = srcdoc.activelayer.name; var templayer = srcdoc.layers[i] //switch other layers off switchalllayersoff(i) if ((i != numoflayers -1) && (i != 0)) { srcdoc.layers[i].visible = true; decantlayer(templayer.name) } }//end loop function switchalllayersoff(idx) { (var m = numoflayers -2; m >= 1 ; m--) { srcdoc.layers[m].visible = false } srcdoc.layers[0].visible = true; srcdoc.layers[numoflayers -1].visible = true srcdoc.layers[idx].visible = true; } function decantlayer(layername) { // ======================================================= var id21 = charidtotypeid( "dplc" ); var desc7 = new actiondescriptor(); var id22 = charidtotypeid( "null" ); var ref5 = new actionreference(); var id23 = charidtotypeid( "dcmn" ); var id24 = charidtotypeid( "ordn" ); var id25 = charidtotypeid( "frst" ); ref5.putenumerated( id23, id24, id25 ); desc7.putreference( id22, ref5 ); var id26 = charidtotypeid( "nm " ); desc7.putstring( id26, layername ); executeaction( id21, desc7, dialogmodes.no ); // set filepath , filename source path filepath = srcdoc.path + '/' + app.activedocument.name +'.tiff'; // save out image var tifffile = new file(filepath); tiffsaveoptions = new tiffsaveoptions(); tiffsaveoptions.byteorder = byteorder.macos; tiffsaveoptions.layers = false; tiffsaveoptions.transparency = true; tiffsaveoptions.alphachannels = true; tiffsaveoptions.embedcolorprofile = false; tiffsaveoptions.imagecompression = tiffencoding.tifflzw; tiffsaveoptions.saveimagepyramid = false; activedocument.saveas(tifffile, tiffsaveoptions, false, extension.lowercase); //close document without saving app.activedocument.close(saveoptions.donotsavechanges); // selects document that's been open longest app.activedocument = srcdoc; }
copy code above text editor, save out "myexportscript.jsx" or something, put said script in adobe\adobe photoshop cs4\presets\scripts directory. next time run photoshop you'll find myexportscrip script on file>scripts menu.
hope works you
More discussions in Photoshop Scripting
adobe
Comments
Post a Comment