2017-05-21 44 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); 
};