Javascript 将RGB频道加载到选择-Photoshop脚本

Javascript 将RGB频道加载到选择-Photoshop脚本,javascript,photoshop,photoshop-script,Javascript,Photoshop,Photoshop Script,所以我对Photoshop脚本还不熟悉,但对JS有很好的掌握 我试图根据“RGB”通道进行选择,但我的代码出错,说“没有这样的元素”。如何以与单个红色、绿色或蓝色通道相同的方式加载RGB通道?如果我把RGB换成红色,一切都会很完美 var doc = app.activeDocument; var currentLayer = doc.activeLayer; var channelRef = doc.channels.getByName("RGB"); doc.selection.load(c

所以我对Photoshop脚本还不熟悉,但对JS有很好的掌握

我试图根据“RGB”通道进行选择,但我的代码出错,说“没有这样的元素”。如何以与单个红色、绿色或蓝色通道相同的方式加载RGB通道?如果我把RGB换成红色,一切都会很完美

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

为了澄清,我想要的功能与单击频道面板中的“频道到选择”图标(所有频道均已选定)相同。

根据定义,没有RGB频道。您可能需要一个包含三个颜色通道的阵列:

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

我找到了答案——记录下动作并复制它输出的脚本。对其他需要这样做的人很有帮助

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

谢谢你的回复。我知道没有RGB频道,但尝试从PS UI内部复制功能。我找到了答案——从日志中获取脚本,并在其周围包装一个函数名。