在Photoshop中使用ExtendScript将选择设置为图层透明通道

3
在Photoshop中,你可以通过在图层面板中按ctrl/cmd并单击图层缩略图来将选择设置为图层的透明度通道。当将其记录为操作时,会显示“设置选择到:图层'LAYERNAME'的透明度通道”。
请问是否可以使用Photoshop的Extendscript重复此功能,以便在Photoshop插件中使用,如何完成?我需要以这种方式动态打开文件并选择特定图层。
谢谢您的时间。
1个回答

2
我昨天也在尝试弄清楚这个问题。通过阅读文档,我得出了两个基本选项:
  1. 在Photoshop中创建一个动作,只需选择并使用app.doAction([actionName], [actionSetName])从脚本中调用它。

  2. 使用脚本监听器插件提取自己的函数来进行选择,并直接在脚本中使用它。

选项1似乎更“安全”,但它确实引入了对具有特定名称和功能的操作的依赖,而这些操作必须在PS中加载;这很糟糕。
选项2稍微难以维护,但它非常好地封装了所有依赖关系。如果您想采用这种方法,请尝试在脚本中添加并调用此函数(从脚本监听器中获取的稍微简洁版本):
function SelectTransparency()
{
    var idChnl = charIDToTypeID( "Chnl" );

    var actionSelect = new ActionReference();
    actionSelect.putProperty( idChnl, charIDToTypeID( "fsel" ) );     

    var actionTransparent = new ActionReference();    
    actionTransparent.putEnumerated( idChnl, idChnl, charIDToTypeID( "Trsp" ) );

    var actionDesc = new ActionDescriptor();
    actionDesc.putReference( charIDToTypeID( "null" ), actionSelect );
    actionDesc.putReference( charIDToTypeID( "T   " ), actionTransparent );

    executeAction( charIDToTypeID( "setd" ), actionDesc, DialogModes.NO );
}

在调用该方法之前,请确保您拥有所需的文档和有效的图层。希望这能帮到您。


这个完美地运行了!最终,我使用脚本监听器的输出并将其包装在函数中来设置整个脚本。 - Richard Cagle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接