将RGB通道加载到选择 - Photoshop Scripting

时间:2017-05-21 04:04:19

标签: javascript photoshop photoshop-script

所以我是Photoshop Scripting的新手,但对JS有很好的把握。

我正在尝试根据'RGB'频道进行选择,但我的代码错误,说“没有这样的元素”。如何以与红色,绿色或蓝色通道相同的方式加载RGB通道?如果我用红色替换RGB,一切都很完美。

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

为了澄清,我希望在频道面板中点击所选频道的“频道到选择”图标具有相同的功能。

2 个答案:

答案 0 :(得分:0)

根据定义,没有RGB通道。您可能想要三个颜色通道的数组:

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

答案 1 :(得分: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 );
};