3

在 Photoshop 中,可以通过按 ctrl/cmd 并单击图层窗格中图层的缩略图来将选择设置为图层的透明通道。当将此记录为动作时,将显示“将选择设置为:图层'LAYERNAME'的透明度通道”。

是否可以使用 Photoshop 的 Extendscript 复制此功能以在 Photoshop 插件中使用?如何实现?我需要以这种方式动态打开文件并选择某个图层。

感谢您的时间。

4

1 回答 1

2

就在昨天试图弄清楚这一点。通过翻阅文档,我得出结论,您有 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 );
}

只需在调用该方法之前确保您拥有所需的文档和有效的图层即可。希望能帮助到你。

于 2013-07-10T16:35:32.417 回答