// 2017, use it at your own risk; #target photoshop if (app.documents.length > 0) { // the file; var myDocument = app.activeDocument; // get number of layers; var ref = new ActionReference(); ref.putEnumerated( charIDToTypeID("Dcmn"), charIDToTypeID("Ordn"), charIDToTypeID("Trgt") ); var applicationDesc = executeActionGet(ref); var theNumber = applicationDesc.getInteger(stringIDToTypeID("numberOfLayers")); // process the layers; var theLayers = new Array; var theOthers = new Array; for (var m = 0; m <= theNumber; m++) { try { var ref = new ActionReference(); ref.putIndex( charIDToTypeID( "Lyr " ), m); var layerDesc = executeActionGet(ref); var layerSet = typeIDToStringID(layerDesc.getEnumerationValue(stringIDToTypeID("layerSection"))); var isBackground = layerDesc.getBoolean(stringIDToTypeID("background")); // if not layer group collect values; if (layerSet != "layerSectionEnd" /*&& layerSet != "layerSectionStart"*/ && isBackground != true) { var theName = layerDesc.getString(stringIDToTypeID('name')); var theID = layerDesc.getInteger(stringIDToTypeID('layerID')); var visible = layerDesc.getBoolean(stringIDToTypeID("visible")); var theColor = layerDesc.getEnumerationValue(stringIDToTypeID("color")); if (typeIDToStringID(theColor) == "red") {theLayers.push([theName, theID])} else {theOthers.push([theName, theID])} }; } catch (e) {}; }; // if layers are red; if (theLayers.length > 0) {alert ("there is at least one red layer")} else {alert ("no red layers")} }; |