alert(checkOverlapping()); function checkOverlapping() { var selectedLayers = getSelectedLayersIdx(); if (selectedLayers.length != 2) {alert ("Please select the two layers you would like to check"); return null;} makeActiveByIndex(selectedLayers[0]); selectActivePixels(); makeActiveByIndex(selectedLayers[1]); intersectActivePixels(); activeDocument.quickMaskMode=true; activeDocument.activeLayer.threshold (128); activeDocument.quickMaskMode=false; try { activeDocument.selection.bounds; } catch (e) { return false } activeDocument.selection.deselect(); return true; } function cID (inVal) { return charIDToTypeID(inVal);} function sID (inVal) { return stringIDToTypeID(inVal);} function selectActivePixels() { var desc15 = new ActionDescriptor(); var ref8 = new ActionReference(); ref8.putProperty( cID( "Chnl" ), cID( "fsel" ) ); desc15.putReference( cID( "null" ), ref8 ); var ref9 = new ActionReference(); ref9.putEnumerated( cID( "Chnl" ), cID( "Chnl" ), cID( "Trsp" ) ); desc15.putReference( cID( "T " ), ref9 ); executeAction( cID( "setd" ), desc15, DialogModes.NO ); } function intersectActivePixels() { var desc18 = new ActionDescriptor(); var ref13 = new ActionReference(); ref13.putEnumerated( cID( "Chnl" ), cID( "Chnl" ), cID( "Trsp" ) ); desc18.putReference( cID( "null" ), ref13 ); var ref14 = new ActionReference(); ref14.putProperty( cID( "Chnl" ), cID( "fsel" ) ); desc18.putReference( cID( "With" ), ref14 ); executeAction( cID( "Intr" ), desc18, DialogModes.NO ); } function makeActiveByIndex( idx){ var desc = new ActionDescriptor(); var ref = new ActionReference(); ref.putIndex(cID( "Lyr " ), idx) desc.putReference( cID( "null" ), ref ); desc.putBoolean( cID( "MkVs" ), true ); executeAction( cID( "slct" ), desc, DialogModes.NO ); }; function getSelectedLayersIdx(){ var selectedLayers = new Array; var ref = new ActionReference(); ref.putEnumerated( cID("Dcmn"), cID("Ordn"), cID("Trgt") ); var desc = executeActionGet(ref); if( desc.hasKey( sID( 'targetLayers' ) ) ){ desc = desc.getList( sID( 'targetLayers' )); var c = desc.count var selectedLayers = new Array(); for(var i=0;i<c;i++){ try{ activeDocument.backgroundLayer; selectedLayers.push( desc.getReference( i ).getIndex() ); }catch(e){ selectedLayers.push( desc.getReference( i ).getIndex()+1 ); } } }else{ var ref = new ActionReference(); ref.putProperty( cID("Prpr") , cID( "ItmI" )); ref.putEnumerated( cID("Lyr "), cID("Ordn"), cID("Trgt") ); try{ activeDocument.backgroundLayer; selectedLayers.push( executeActionGet(ref).getInteger(cID( "ItmI" ))-1); }catch(e){ selectedLayers.push( executeActionGet(ref).getInteger(cID( "ItmI" ))); } var vis = app.activeDocument.activeLayer.visible; if(vis == true) app.activeDocument.activeLayer.visible = false; var desc9 = new ActionDescriptor(); var list9 = new ActionList(); var ref9 = new ActionReference(); ref9.putEnumerated( cID('Lyr '), cID('Ordn'), cID('Trgt') ); list9.putReference( ref9 ); desc9.putList( cID('null'), list9 ); executeAction( cID('Shw '), desc9, DialogModes.NO ); if(app.activeDocument.activeLayer.visible == false) selectedLayers.shift(); app.activeDocument.activeLayer.visible = vis; } return selectedLayers; }; |