【问题标题】:Setting Selection to Layer Transparency Channel Using Extendscript in Photoshop在 Photoshop 中使用 Extendscript 将选择设置为图层透明度通道
【发布时间】:2013-07-06 02:03:56
【问题描述】:

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

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

感谢您的宝贵时间。

【问题讨论】:

    标签: javascript photoshop extendscript


    【解决方案1】:

    昨天才试图弄清楚这一点。通过翻阅文档,我得出结论,您有两个基本选择:

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

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

    【讨论】:

    • 这很完美!最后,我最终使用脚本侦听器的输出设置了整个脚本并将其包装在函数中。
    猜你喜欢
    • 2012-04-11
    • 2020-03-28
    • 2015-01-23
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多