Hello Everybody
I'm looking for a way to get all the selected layers as array.
With app.activeDocument.activeLayer i can select only the top-most of the selected layers.
There is a way to achieve this in ExtendScript:
function getSelectedLayers() {
var layerArray = new Array;
var desc = new ActionDescriptor();
var ref = new ActionReference();
ref.putClass( stringIDToTypeID('layerSection') );
desc.putReference( charIDToTypeID('null'), ref );
var layerRef = new ActionReference();
layerRef.putEnumerated( charIDToTypeID('Lyr '), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') );
desc.putReference( charIDToTypeID('From'), layerRef );
executeAction( charIDToTypeID('Mk '), desc, DialogModes.NO );
var tempLayerSet = app.activeDocument.activeLayer.layers;
for ( var layerIndex = 0; layerIndex < tempLayerSet.length; layerIndex++ ) {
layerArray.push( tempLayerSet[layerIndex] );
}
executeAction( charIDToTypeID('undo'), undefined, DialogModes.NO );
return layerArray;
};
How can i do that using Photoshop SDK?
Thanks in advance.
The JavaScript to C++ conversion is not too difficult. Check out the automation examples. There are suites that you need to acquire for ActionDescriptor(s) and ActionControls(s) and the conversion is almost line by line. Install the Listener plug-in from the SDK and it will generate code just like ScriptListener does for JavaScript. You can use that for a reference.
North America
Europe, Middle East and Africa
Asia Pacific