2017-05-21 50 views
0

所以我是新來的Photoshop腳本,但有一個JS的堅實把握。加載RGB通道選擇 - Photoshop腳本

我想基於'RGB'通道進行選擇,但是我的代碼出錯了,說「沒有這樣的元素」。如何以與單獨的紅色,綠色或藍色通道相同的方式加載RGB通道?如果我用紅色替換RGB,一切都很完美。

var doc = app.activeDocument; 
var currentLayer = doc.activeLayer; 
var channelRef = doc.channels.getByName("RGB"); 
doc.selection.load(channelRef, SelectionType.REPLACE); 

要澄清,我想要的功能與單擊所選通道面板中的'通道選擇'圖標相同。

回答

0

根據定義,沒有RGB通道。您可能需要三個顏色通道的陣列:

var channelRef = [doc.channels.getByName('Red'),doc.channels.getByName('Green'),doc.channels.getByName('Blue')]; 
+0

感謝您的回覆。我知道沒有RGB通道,但試圖從PS UI中複製功能。我找出答案 - 從日誌中抓取腳本並在其周圍包裹函數名稱。 –

0

我找出答案 - 記錄動作並複製它輸出的腳本。有用的人需要這樣做。

function selectRGBChannel() { 
    var idsetd = charIDToTypeID("setd"); 
    var desc3343 = new ActionDescriptor(); 
    var idnull = charIDToTypeID("null"); 
     var ref101 = new ActionReference(); 
     var idChnl = charIDToTypeID("Chnl"); 
     var idfsel = charIDToTypeID("fsel"); 
     ref101.putProperty(idChnl, idfsel); 
    desc3343.putReference(idnull, ref101); 
    var idT = charIDToTypeID("T "); 
     var ref102 = new ActionReference(); 
     var idChnl = charIDToTypeID("Chnl"); 
     var idChnl = charIDToTypeID("Chnl"); 
     var idRGB = charIDToTypeID("RGB "); 
     ref102.putEnumerated(idChnl, idChnl, idRGB); 
    desc3343.putReference(idT, ref102); 
executeAction(idsetd, desc3343, DialogModes.NO); 
};