Last active
January 3, 2025 21:07
-
-
Save hilukasz/03b17ee78414aadff995 to your computer and use it in GitHub Desktop.
get array of selected layers in photoshop via extendscript
This file contains 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
var docRef = app.activeDocument; | |
cTID = function(s) { return app.charIDToTypeID(s); }; | |
sTID = function(s) { return app.stringIDToTypeID(s); }; | |
function newGroupFromLayers(doc) { | |
var desc = new ActionDescriptor(); | |
var ref = new ActionReference(); | |
ref.putClass( sTID('layerSection') ); | |
desc.putReference( cTID('null'), ref ); | |
var lref = new ActionReference(); | |
lref.putEnumerated( cTID('Lyr '), cTID('Ordn'), cTID('Trgt') ); | |
desc.putReference( cTID('From'), lref); | |
executeAction( cTID('Mk '), desc, DialogModes.NO ); | |
}; | |
function undo() { | |
executeAction(cTID("undo", undefined, DialogModes.NO)); | |
}; | |
function getSelectedLayers(doc) { | |
var selLayers = []; | |
newGroupFromLayers(); | |
var group = doc.activeLayer; | |
var layers = group.layers; | |
for (var i = 0; i < layers.length; i++) { | |
selLayers.push(layers[i]); | |
} | |
undo(); | |
return selLayers; | |
}; | |
var selectedLayers = getSelectedLayers(app.activeDocument); | |
for( i = 0; i < selectedLayers.length; i++) { | |
selectedLayers[i].selected = true; | |
docRef.activeLayer = selectedLayers[i]; | |
alert(docRef.activeLayer.name) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
My opinion, the main idea of this script is get the child layer, after grouping. He collect the child layer by that group (doc.activeLayer.layers), after collecting, he undo back to ungroup.