• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

Select layers with mask

Advocate ,
Apr 10, 2020 Apr 10, 2020

Copy link to clipboard

Copied

I saw on the forum but I can't find a solution
I would like to select only the layers with the mask.

 

Schermata 2020-04-10 alle 16.07.09.png

TOPICS
Actions and scripting

Views

1.3K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Guide , Apr 10, 2020 Apr 10, 2020
// Selectt all layers with user/vector masks

#target photoshop;
if(documents.length) main();
function main(){
var masks = getMaskIDs();
if(masks.length < 1) return;
deselectLayers();
var first = masks.shift();
selectLayerById(Number(first));
for(var a in masks){
    selectLayerById(Number(masks[a]),true);
    }
};
function deselectLayers() { 
var desc01 = new ActionDescriptor(); 
var ref01 = new ActionReference(); 
ref01.putEnumerated( charIDToTypeID('Lyr '), charIDToTypeID('Ordn'), charIDToTyp
...

Votes

Translate

Translate
Adobe
Community Expert ,
Apr 10, 2020 Apr 10, 2020

Copy link to clipboard

Copied

Please explain what you want to achieve exactly

Maybe before/after screenshots could help illustrate your intentions. 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guide ,
Apr 10, 2020 Apr 10, 2020

Copy link to clipboard

Copied

// Selectt all layers with user/vector masks

#target photoshop;
if(documents.length) main();
function main(){
var masks = getMaskIDs();
if(masks.length < 1) return;
deselectLayers();
var first = masks.shift();
selectLayerById(Number(first));
for(var a in masks){
    selectLayerById(Number(masks[a]),true);
    }
};
function deselectLayers() { 
var desc01 = new ActionDescriptor(); 
var ref01 = new ActionReference(); 
ref01.putEnumerated( charIDToTypeID('Lyr '), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') ); 
desc01.putReference( charIDToTypeID('null'), ref01 ); 
executeAction( stringIDToTypeID('selectNoLayers'), desc01, DialogModes.NO ); 
};
function getMaskIDs(){ 
   var ref = new ActionReference(); 
   ref.putEnumerated( charIDToTypeID('Dcmn'), charIDToTypeID('Ordn'), charIDToTypeID('Trgt') ); 
   var count = executeActionGet(ref).getInteger(charIDToTypeID('NmbL')) +1; 
   var Masks=[];
try{
    activeDocument.backgroundLayer;
var i = 0; }catch(e){ var i = 1; };
   for(i;i<count;i++){ 
       if(i == 0) continue;
        ref = new ActionReference(); 
        ref.putIndex( charIDToTypeID( 'Lyr ' ), i );
        var desc = executeActionGet(ref);
        var layerName = desc.getString(charIDToTypeID( 'Nm  ' ));
        var Id = desc.getInteger(stringIDToTypeID( 'layerID' ));
        if(layerName.match(/^<\/Layer group/) ) continue;
        var layerType = typeIDToStringID(desc.getEnumerationValue( stringIDToTypeID( 'layerSection' )));
        var UM = desc.getBoolean(stringIDToTypeID('hasUserMask'));
        var VM = desc.getBoolean(stringIDToTypeID('hasVectorMask'));
         if( UM == true ||  VM == true){ Masks.push([Id]); }
   }; 
return Masks;
};
function selectLayerById(ID, add) {
    add = (add == undefined)  ? add = false : add;
	var ref = new ActionReference();
	ref.putIdentifier(charIDToTypeID('Lyr '), ID);
	var desc = new ActionDescriptor();
	desc.putReference(charIDToTypeID('null'), ref);
	if (add) {
		desc.putEnumerated(stringIDToTypeID('selectionModifier'), stringIDToTypeID('selectionModifierType'), stringIDToTypeID('addToSelection'));
	}
	desc.putBoolean(charIDToTypeID('MkVs'), false);
	executeAction(charIDToTypeID('slct'), desc, DialogModes.NO);
};

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Apr 10, 2020 Apr 10, 2020

Copy link to clipboard

Copied

LATEST

SuperMerlin
you are a super genius

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines