Photoshop插件-动作相关概念-ActionList-ActionDescriptor-ActionList-动作执行加载调用删除-PS插件开发

article/2025/8/22 4:41:27

文章目录

    • 1.简介
    • 2.动作相关概念
      • 2.1.ActionDescriptor
      • 2.2.ActionList
      • 2.3.ActionReference
    • 3.范例
      • 3.1.加载动作
      • 3.2.执行动作
      • 3.3.非加载执行动作文件中动作
      • 3.4.删除动作集
      • 3.5.删除动作
    • 4.作者寄语

1.简介

  PS动作是什么?是一组操作步骤的组合,多个步骤集合成一两步操作完成复杂的操作。在PS内,是通过动作面板进行管理,录制,编辑,加载和执行。如下图所示:
在这里插入图片描述

2.动作相关概念

2.1.ActionDescriptor

  该对象提供了一种字典式的机制,用于将数据存储为键值对。 它可用于对 Photoshop 的低级访问。许多配置文件使用序列化操作描述符来表示其数据。 例如,用于在 Application.playbackParameters 中封装播放选项,并由Application.getCustomOptions()。

2.2.ActionList

  该对象提供了一种用于存储数据的数组式机制。 它可用于对 Photoshop 的低级访问。当存储相同类型的数据时,这个对象是理想的。 列表中的所有项目必须属于同一类型。 您可以使用诸如 putBoolean() 之类的“put”方法来附加新元素,并且可以使用 clear() 清除整个列表,但不能以其他方式修改列表。注意:ActionList 对象是 Action Manager 功能的一部分。 有关使用动作管理器的详细信息,请参阅 Photoshop CC 脚本指南。

2.3.ActionReference

  此对象提供有关操作所指内容的信息。 例如,当提到某物的名称时,您可能会使用 keyName。 引用还需要知道您指的是什么名称。 在这种情况下,您可以使用 classDocument 作为文档名称或使用 classLayer 作为图层名称。 它可用于对 Photoshop 的低级访问。包含与 ActionDescriptor 关联的数据。

3.范例

3.1.加载动作

  将动作文件加载至面板,代码如下所示:

app.load(File("C:\\2.atn"));

3.2.执行动作

  调用函数执行对应组和对应名称函数,代码如下所示:

play_action("默认动作", "四分颜色");
//play_action("默认动作", "四分颜色") // Perform the whole action// 执行整个动作
//play_action("默认动作", "四分颜色", 4, true) // Complete all from the beginning of the command number 4// 从命令编号4 的开头全部完成
//play_action("默认动作", "四分颜色", 5, false) // Will execute only command number 5// 仅执行命令编号5
//cmd_number - the index of the command, ( starts from 1 )
function play_action(set, action, cmd_number, allow_continue)
{try{var d = new ActionDescriptor();var r = new ActionReference();if (typeof(cmd_number) == "number") r.putIndex( charIDToTypeID( "Cmnd" ), cmd_number );r.putName( charIDToTypeID( "Actn" ), action );r.putName( charIDToTypeID( "ASet" ), set );d.putReference( charIDToTypeID( "null" ), r );if (typeof(allow_continue) == "boolean") d.putBoolean( charIDToTypeID( "Cntn" ), allow_continue );executeAction( charIDToTypeID( "Ply " ), d, DialogModes.NO );}catch(e){alert(e);}
}

3.3.非加载执行动作文件中动作

  通过非加载方式,执行动作文件中的动作,代码流程较长,有专门博文介绍。https://anjingzhi.blog.csdn.net/article/details/121544253

3.4.删除动作集

  通过名称删除动作集。代码如下:

delete_actionset("组 1");
function delete_actionset(set)
{try{var idDlt = charIDToTypeID( "Dlt " );var desc24 = new ActionDescriptor();var idnull = charIDToTypeID( "null" );var ref5 = new ActionReference();var idASet = charIDToTypeID( "ASet" );ref5.putName( idASet, set );desc24.putReference( idnull, ref5 );executeAction( idDlt, desc24, DialogModes.NO );}catch(e){alert(e);}
}

3.5.删除动作

  通过动作集和动作名称删除动作。代码如下:

delete_action("组 1","动作 1");
function delete_action(set,action)
{try{var idDlt = charIDToTypeID( "Dlt " );var desc6 = new ActionDescriptor();var idnull = charIDToTypeID( "null" );var ref3 = new ActionReference();var idActn = charIDToTypeID( "Actn" );ref3.putName( idActn, action );var idASet = charIDToTypeID( "ASet" );ref3.putName( idASet, set);desc6.putReference( idnull, ref3 );executeAction( idDlt, desc6, DialogModes.NO );}catch(e){alert(e);}
}

4.作者寄语

  合理的脚本代码可以有效的提高工作效率,减少重复劳动。


http://chatgpt.dhexx.cn/article/YuVTmhsV.shtml

相关文章

Action的类型

A、使用普通的类 必须有public的execute且返回值为String的方法。 ActionType.java package com;public class ActionType_1 {public String execute(){System.out.println("我是Action类型1");return null;} } B、实现Actin接口 实现com.opensymphony.xwork2.Acti…

ListActivity

ListActivity ListActivity中比较复杂的部分就是配置其Adapter,Adapter常用的有ArrayAdapter和SimpleAdapter。 首先我们先看一下简单的ArrayAdapter:ListActivity不同于普通Activity的地方是该Activity里边有一个ListView,该ListView绑定了A…

JAVA:Timer+actionListener

Timer类 •类描述: –它是一个按预定频率触发ActionEvent事件的源组件,利用它可以实现动态效果。 •构造方法: –Timer( int delay, ActionListener actionListener(绑定监听器,开始后自己不断调用监听器的actionp…

actions的使用详解

actions的使用详解 为何要有actions环节 我们之前学了vuex状态管理,组件可以引用state,但是不能直接修改state,比如发送操作到actions,在此执行异步操作,然后再提交mutation来修改state.如果没有异步操作可以直接提交到mutation…

idea插件Material Theme主题设置方法

首先:如果要设置下图这种: 1. 先下载插件 2. 设置主题 3. 设置代码界面主题 4. 下载 Atom Material Icons插件

idea工具推荐几款好用的代码theme主题颜色

先去这个主题网站选择自己喜欢的主题http://color-themes.com/?viewindex 我个人比较喜欢这几款,你们要是喜欢其他主题的可以选择别的 点击下面的下下载按钮 跳转页面后点击下载 然后在我们的idea编辑器器中导入主题jar包找到我们下载的jar包然后点击ok 然后点击E…

Material Theme 主题插件 - Sublime 插件

1. 安装 Material Theme 主题插件 Material Theme主题、配色方案所占的区域 2. Material Theme 配色方案(右侧区域) 查看可用的配色方案 可选配色方案(个人推荐:Material-Theme-Darker) Darker 配色方案效果

android_基础_常见主题theme风格详解

本文出自门心叼龙的博客,转载请注明出处: https://blog.csdn.net/geduo_83/article/details/86560896 目录 1. 什么是Style,什么是Theme? 2. 在定义Theme的时候符号和?符号有何区别? 3. 怎么通过代码给…

iview 实现在theme主题中添加某一个新模块的主题颜色切换

背景:直接下载的iview-admin 1.3.1模板 1、iview 自带主题theme 主要有4个颜色组成 分别为 默认的蓝色,其他分别为红色,蓝色,洋红色;然后在根据菜单栏是否为黑色和白色的组合状态所以有8中组合的主题; 2、…

Android——Theme和Style-由浅入深,全面讲解

1、官方详细解读 样式和主题背景 | Android 开发者 | Android Developers 2、应用场景 类似web设计中css样式。将应用设计的细节与界面的结构和行为分开。 样式style :应用于 单个 View 的外观。样式可以指定字体颜色、字号、背景颜色等属性 主题theme&…

关于eclipse IDE安装Darkest Dark Theme主题插件

听说Darkest Dark Theme是现在最受欢迎的eclipse主题插件,于是我也来搞了一下。 Darkest Dark Theme官方网站(打开慢的要死,不知道是不是只有我会有这个问题。) https://marketplace.eclipse.org/content/darkest-dark-theme安装教程: 1.打开…

Vue Theme主题样式整理

为什么80%的码农都做不了架构师?>>> 一、ElementUI官方主题在线生成预览 https://elementui.github.io/theme-chalk-preview/#/zh-CN 使用步骤: 1.选择主题颜色,下载主题 包,然后解压 2.找到node_modules下的element-u…

Android Theme 常见主题风格详解

本文为自己多年来在Android实战开发过程中总结归纳的一些常见问题,现在分享出来希望对初学者有所帮助。 本文出自门心叼龙的博客,转载请注明出处: https://blog.csdn.net/geduo_83/article/details/86560896 目录 1. 什么是Style&…

Android自带的Theme主题图解

一、Manifest文件中: 从上图中我们可以看到在这个应用程序中我们的主题应用的是 AppTheme ,然后我们去看看 AppTheme 。 二、style.xml文件中: 这个文件是在应用工程中的: 然后又可以发现 AppTheme 主题样式是继承自 AppBaseTheme 主题样式的, 而 AppBaseTheme 主题样式又…

OpenWRT LUCI Theme主题定制

本人所写的博客都为开发之中遇到问题记录的随笔,主要是给自己积累些问题。免日后无印象,如有不当之处敬请指正(欢迎进扣群 24849632 探讨问题); 我们在github上先找一个合适的主题 https://github.com/search?q=luci+theme 比如我们以 rosywrt/luci-theme-rosy 为例 第…

Android的Theme主题切换

简单的Theme换肤功能 效果截图 1、定义属性 先定义几个需要改变的属性&#xff0c;例如&#xff1a; <!--换肤--><attr name"userNameColor" format"color" /><attr name"commonColor" format"color" /><…

Eclipse设置Theme主题颜色

设置Eclipse的代码编辑区背景为暗黑色系&#xff1a; 如需转载&#xff0c;请注明转载自&#xff1a;blog.csdn.net/it1988888 相关文件下载&#xff1a;http://guari.github.io/eclipse-ui-theme/ 方案一--下载颜色主题配置文件&#xff0c;离线导入配色方案的设置&#xf…

Jupyter lab Theme 主题更换

Jupyter lab Theme 主题更换 1. 打开Jupyter-lab2. 再拓展插件中搜索 “theme”3. 安装自己喜欢的主题4. 在Setting->JupyterLab Theme->选择"自己刚安装的主题"jupyterlab_miami_nights 主题jupyterlab_onedarkpro 主题 1. 打开Jupyter-lab 2. 再拓展插件中搜…

PySimpleGui theme主题使用

第一章 PySimpleGui theme主题使用 目录 系列文章目录 前言 一、theme是什么&#xff1f; 二、使用步骤 1.打印所有主题&#xff1a; 2.主题设置 3.更新主题的设置 总结 前言 通过设置主题&#xff0c;可快速设置GUI的颜色&#xff0c;节省自己设置UI的时间 一、theme是什么&a…

Hexo修改theme主题

学习目标 本文主要学习的内容如下&#xff1a; 如何去获取到 NexT 主题 如何去安装和配置 NexT 主题 设置菜单&#xff0c;如分类&#xff0c;标签&#xff0c;关于我等简单配置 获取开源的 Hexo 主题 在上节介绍如何快速去搭建 Hexo &#xff0c;最终展示的效果如下图所…