2012-12-12 90 views
3

我在JS中编写了一个Photoshop脚本,它将每个图层文件夹和空间分隔出来,就像精灵图表一样。我已经想出了这一部分,但我试图在运行脚本时删除任何形式的人为错误。现在,您需要准备好每个图层文件夹的正确命名文件,并且还必须将图层蒙版应用于所选内容。用于创建和应用图层蒙版的Photoshop JS脚本

我想删除用户需要应用图层蒙版。我可以选择图层,然后选择我想要遮罩的部分,但我不知道如何应用或创建遮罩。

,我想它被应用于:

function maskIt(){ 
    if(currentFrameCount < (frameNumber-1)){ 
     currentFrameCount = currentFrameCount+1; 
     currentFrame = ("frame"+currentFrameCount); 
     activeDocument.layers[currentFrame].visable; 
     activeDocument.selection.selectAll(); 
     //createMask(); 
     maskComplete = false; 
    } else if (currentFrameCount == (frameNumber-1)){ 
     currentFrameCount = currentFrameCount+1; 
     currentFrame = ("frame"+currentFrameCount); 
     activeDocument.layers[currentFrame].visable; 
     activeDocument.selection.selectAll(); 
     //createMask(); 
     currentFrameCount = 0; 
     maskComplete = true; 
    } 
} 

回答

1

从scriptlistener收拾这两个功能可以帮助你:

// FUNCTION MAKE MASK() 
function makeMask() 
{ 
    // ======================================================= 
    var id4556 = charIDToTypeID("setd"); 
    var desc983 = new ActionDescriptor(); 
    var id4557 = charIDToTypeID("null"); 
    var ref657 = new ActionReference(); 
    var id4558 = charIDToTypeID("Chnl"); 
    var id4559 = charIDToTypeID("fsel"); 
    ref657.putProperty(id4558, id4559); 
    desc983.putReference(id4557, ref657); 
    var id4560 = charIDToTypeID("T "); 
    var ref658 = new ActionReference(); 
    var id4561 = charIDToTypeID("Chnl"); 
    var id4562 = charIDToTypeID("Chnl"); 
    var id4563 = charIDToTypeID("Trsp"); 
    ref658.putEnumerated(id4561, id4562, id4563); 
    desc983.putReference(id4560, ref658); 
    executeAction(id4556, desc983, DialogModes.NO); 

    // ======================================================= 
    var id4564 = charIDToTypeID("Mk "); 
    var desc984 = new ActionDescriptor(); 
    var id4565 = charIDToTypeID("Nw "); 
    var id4566 = charIDToTypeID("Chnl"); 
    desc984.putClass(id4565, id4566); 
    var id4567 = charIDToTypeID("At "); 
    var ref659 = new ActionReference(); 
    var id4568 = charIDToTypeID("Chnl"); 
    var id4569 = charIDToTypeID("Chnl"); 
    var id4570 = charIDToTypeID("Msk "); 
    ref659.putEnumerated(id4568, id4569, id4570); 
    desc984.putReference(id4567, ref659); 
    var id4571 = charIDToTypeID("Usng"); 
    var id4572 = charIDToTypeID("UsrM"); 
    var id4573 = charIDToTypeID("RvlS"); 
    desc984.putEnumerated(id4571, id4572, id4573); 
    executeAction(id4564, desc984, DialogModes.NO); 
} 


// FUNCTION APPLY LAYER MASK() 
function applyLayerMask() 
{ 
    // ======================================================= 
    var id1949 = charIDToTypeID("Dlt "); 
    var desc398 = new ActionDescriptor(); 
    var id1950 = charIDToTypeID("null"); 
    var ref291 = new ActionReference(); 
    var id1951 = charIDToTypeID("Chnl"); 
    var id1952 = charIDToTypeID("Chnl"); 
    var id1953 = charIDToTypeID("Msk "); 
    ref291.putEnumerated(id1951, id1952, id1953); 
    desc398.putReference(id1950, ref291); 
    var id1954 = charIDToTypeID("Aply"); 
    desc398.putBoolean(id1954, true); 
    executeAction(id1949, desc398, DialogModes.NO); 
} 

如果你想排除用户错误的人,你可能需要第三个功能,它将检测一个图层是否具有掩码开启(选择该图层,尝试复制并粘贴图层蒙版;如果它不粘贴 - 没有图层蒙版)

相关问题