Search code examples
javascriptphotoshopadobe-illustratorphotoshop-script

How to Identify Clipping Mask using javascript without ratios for photoshop?


I want to find all clipping mask layer from psd. but problem is how can we identify clipping mask layers in psd currently I'm using below code.

I tried this How to identify clipping masks in Photoshop using JavaScript

But it is not working.

for (var x = 0; x < layers.length; x++) {
    var layerindex = layers[x];
    doc.activeLayer = doc.artLayers[x];
    var ref = new ActionReference();

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

    var desc = executeActionGet(ref);

    if(desc.hasKey(charIDToTypeID('GrpL'))){

        alert("this is Clipping Mask Layer");       
    }
}

Solution

  • var doc = activeDocument,
        layers = activeDocument.layers;
    
    for (var x = 0; x < layers.length; x++)
    {
        doc.activeLayer = doc.layers[x];
        var ref = new ActionReference();
        ref.putEnumerated(charIDToTypeID("Lyr "), charIDToTypeID("Ordn"), charIDToTypeID("Trgt"));
        var desc = executeActionGet(ref);
        if (desc.hasKey(charIDToTypeID('Grup')) && desc.getBoolean(charIDToTypeID('Grup')))
        {
            alert("this is Clipping Mask Layer: " + doc.activeLayer.name);
        }
    }