Quantcast
Channel: Adobe Community : Popular Discussions - Photoshop Scripting
Viewing all articles
Browse latest Browse all 12244

Getting selected layers by script (object refs, not indices!)

$
0
0

Hey guys - I'm working on a simple photoshop CC script that exports selected layers, but I'm having some problems with the selection code.

Googling around I found a helpful snippet that returns a list of layer index values for my selected layers - however the returned indices don't equate to the indices I get when simply using app.activeDocument.layers().

Can anyone suggest a method to get references to the layer objects that are selected? - or perhaps a function to convert the document indices from the function below to their respective layer objects?

 

Many thanks in advance!

 

function getSelectedLayersIdx(){

     var selectedLayers = new Array;

     var ref = new ActionReference();

     ref.putEnumerated( charIDToTypeID('Dcmn'), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') );

     var desc = executeActionGet(ref);

     if( desc.hasKey( stringIDToTypeID( 'targetLayers' ) ) ){

          desc = desc.getList( stringIDToTypeID( 'targetLayers' ));

          var c = desc.count

          var selectedLayers = new Array();

          for(var i=0;i<c;i++){

               selectedLayers.push(  desc.getReference( i ).getIndex());

          }

     }else{

          var ref = new ActionReference();

          ref.putProperty( charIDToTypeID('Prpr') , charIDToTypeID( 'ItmI' ));

          ref.putEnumerated( charIDToTypeID('Lyr '), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') );

          selectedLayers.push( executeActionGet(ref).getInteger(charIDToTypeID( 'ItmI' )));

     }

     return selectedLayers;

}

 

var doc = app.activeDocument;

var layersIndx = getSelectedLayersIdx(doc);

alert("Selected layers indx: "+layersIndx);

 

for(i =0; i<layersIndx.length; i++){

    index= layersIndx[i];

    alert("Index: "+index+" Name: "+doc.layers[index].name);

}


Viewing all articles
Browse latest Browse all 12244

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>