@Plaza

Как добавить каждому слою маску в Photoshop Scripts?

Здравствуйте.
Необходимо добавить каждому слою документа (кроме фона) пустую маску:
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

Может быть, есть знающие как изменить код, чтобы маска создавалась пустая?
  • Вопрос задан
  • 2520 просмотров
Решения вопроса 1
@Plaza Автор вопроса
Разобрался сам.
Строку:
var idHdAl = charIDToTypeID( "HdAl" );
Заменить на:
var idHdAl = charIDToTypeID( "RvlA" );
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы