2011-09-02 144 views
1

我想知道如何在photoshop中添加一個矢量蒙版到給定圖層使用photoshop sript(.jsx)?將矢量蒙版添加到圖層?

我不是100%確定我想要的是在Photoshop中稱爲「矢量面具」。 我有一張圖片和一張黑白相間的面具,我想自動將面具添加到圖片中,以便我們只能看到白色區域下的東西。 黑色區域下必須是透明像素。 這一定是簡單的,但我不能找到在線文檔什麼...

這裏是我做了那麼遠,

 var f_image = File(imageAdress) 
    open(f_image) 

    var bgLayer = activeDocument.artLayers[0] 
    bgLayer.isBackgroundLayer = false; 


    var maskLayer = activeDocument.artLayers.add() 
    maskLayer.name = "mask" 

    open(File(maskAdress)) 
    // flatten the document so we get everything and then copy 
    app.activeDocument.flatten() 
    app.activeDocument.selection.selectAll() 
    app.activeDocument.selection.copy() 
    // don’t save anything we did 
    app.activeDocument.close(SaveOptions.DONOTSAVECHANGES) 
    app.activeDocument.paste() 

//如何設置屏蔽作爲掩模????

謝謝!

回答

0

你不想矢量蒙版;你想要圖層蒙版。這是我通常使用的功能。它將在一個圖層上添加一個圖層蒙版並進行選擇。它不會在空白層上工作,但是

makeMask() 

// 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); 
} 
0

我不知道如何通過腳本使這一點,但到矢量蒙版添加到你的層:

  1. 繪製矢量路徑(將出現在窗口的路徑)
  2. 有路徑激活(選擇)
  3. 轉到圖層菜單,矢量蒙版,電流路徑