Здравствуйте.
Необходимо добавить каждому слою документа (кроме фона) пустую маску:
![3f0b3bca0b2749368d2d6ed8d23f4e3f.png](//habrastorage.org/files/3f0/b3b/ca0/3f0b3bca0b2749368d2d6ed8d23f4e3f.png)
Есть такой скрипт:
if(app.documents.length>0){
var docRef = activeDocument;
var layerNum = docRef.layers.length;
for(var i=0;i<layerNum;i++){
docRef.activeLayer = docRef.layers[i];
if(!docRef.activeLayer.isBackgroundLayer){
try{addMask ()}
catch(e){}
}
}
}
else{alert('There are no open files')};
function addMask(){
var idMk = charIDToTypeID( "Mk " );
var desc2 = new ActionDescriptor();
var idNw = charIDToTypeID( "Nw " );
var idChnl = charIDToTypeID( "Chnl" );
desc2.putClass( idNw, idChnl );
var idAt = charIDToTypeID( "At " );
var ref1 = new ActionReference();
var idChnl = charIDToTypeID( "Chnl" );
var idChnl = charIDToTypeID( "Chnl" );
var idMsk = charIDToTypeID( "Msk " );
ref1.putEnumerated( idChnl, idChnl, idMsk );
desc2.putReference( idAt, ref1 );
var idUsng = charIDToTypeID( "Usng" );
var idUsrM = charIDToTypeID( "UsrM" );
var idHdAl = charIDToTypeID( "HdAl" );
desc2.putEnumerated( idUsng, idUsrM, idHdAl );
executeAction( idMk, desc2, DialogModes.NO );
}
Он выполняется и добавляет маску, но она залита черным:
![7dcfa4d0ed8f47a39c9cc0f7056514d2.png](//habrastorage.org/files/7dc/fa4/d0e/7dcfa4d0ed8f47a39c9cc0f7056514d2.png)
Может быть, есть знающие как изменить код, чтобы маска создавалась пустая?