当前位置:网站首页>Photoshop plug-in action related concepts actionlist actiondescriptor actionlist action execution load call delete PS plug-in development
Photoshop plug-in action related concepts actionlist actiondescriptor actionlist action execution load call delete PS plug-in development
2022-07-05 14:40:00 【Plug in development】
List of articles
1. brief introduction
PS What's the action ? It is a combination of a set of operation steps , Multiple steps are assembled into oneortwo steps to complete complex operations . stay PS Inside , It is managed through the action panel , Recording , edit , Load and execute . As shown in the figure below :
2. Action related concepts
2.1.ActionDescriptor
This object provides a lexicographic mechanism , Used to store data as Key value pair . It can be used to Photoshop Low level access . Many configuration files use serialization operation descriptors to represent their data . for example , Used in Application.playbackParameters Package playback options , And by the Application.getCustomOptions().
2.2.ActionList
This object provides an array mechanism for storing data . It can be used to Photoshop Low level access . When storing the same type of data , This object is ideal . All items in the list must be of the same type . You can use things like putBoolean() And so on. “put” Method to attach new elements , And you can use clear() Clear the entire list , But you cannot modify the list in other ways . Be careful :ActionList The object is Action Manager Part of the function . For more information about using the action manager , see also Photoshop CC Script guide .
2.3.ActionReference
This object provides information about what the operation refers to . for example , When it comes to the name of something , You may use keyName. The reference also needs to know what name you mean . under these circumstances , You can use classDocument As the document name or use classLayer As the layer name . It can be used to Photoshop Low level access . Include and ActionDescriptor Associated data .
3. Example
3.1. Load action
Load the action file into the panel , The code is as follows :
app.load(File("C:\\2.atn"));
3.2. Executive action
Call the function to execute the corresponding group and the corresponding name function , The code is as follows :
play_action(" Default action ", " Quarter color ");
//play_action(" Default action ", " Quarter color ") // Perform the whole action// Perform the whole action
//play_action(" Default action ", " Quarter color ", 4, true) // Complete all from the beginning of the command number 4// From the command number 4 Complete the beginning of
//play_action(" Default action ", " Quarter color ", 5, false) // Will execute only command number 5// Only execute the command number 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. Actions in the non loading execution action file
By non loading , Execute the actions in the action file , The code flow is long , There is a special blog introduction .https://anjingzhi.blog.csdn.net/article/details/121544253
3.4. Delete action set
Delete action set by name . The code is as follows :
delete_actionset(" Group 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
Delete actions by action set and action name . The code is as follows :
delete_action(" Group 1"," action 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. The author's message
Reasonable script code can effectively improve work efficiency , Reduce repetitive labor .
边栏推荐
- useMemo,memo,useRef等相关hooks详解
- The forked VM terminated without saying properly goodbye
- 【数组和进阶指针经典笔试题12道】这些题,满足你对数组和指针的所有幻想,come on !
- Online electronic component purchasing Mall: break the problem of information asymmetry in the purchasing process, and enable enterprises to effectively coordinate management
- CPU design related notes
- Thymeleaf 使用后台自定义工具类处理文本
- [C question set] of Ⅷ
- js亮瞎你眼的日期选择器
- 729. My schedule I: "simulation" & "line segment tree (dynamic open point) &" block + bit operation (bucket Division) "
- [learning notes] connectivity and circuit of graph
猜你喜欢

Differences between IPv6 and IPv4 three departments including the office of network information technology promote IPv6 scale deployment

家用电器行业商业供应链协同平台解决方案:供应链系统管理精益化,助推企业智造升级

Solution of commercial supply chain collaboration platform in household appliance industry: lean supply chain system management, boosting enterprise intelligent manufacturing upgrading

分享 12 个最常用的正则表达式,能解决你大部分问题

有一个强大又好看的,赛过Typora,阿里开发的语雀编辑器

面试突击62:group by 有哪些注意事项?

Qingda KeYue rushes to the science and Innovation Board: the annual revenue is 200million, and it is proposed to raise 750million

黑马程序员-软件测试-10阶段2-linux和数据库-44-57为什么学习数据库,数据库分类关系型数据库的说明Navicat操作数据的说明,Navicat操作数据库连接说明,Navicat的基本使用,

Selection and use of bceloss, crossentropyloss, sigmoid, etc. in pytorch classification

Interview shock 62: what are the precautions for group by?
随机推荐
详解Vue适时清理keepalive缓存方案
Thymeleaf common functions
Loop invariant
Long list optimized virtual scrolling
如何将电脑复制的内容粘贴进MobaXterm?如何复制粘贴
mysql8.0JSON_CONTAINS的使用说明
CPU设计实战-第四章实践任务三用前递技术解决相关引发的冲突
Thymeleaf th:with use of local variables
FR练习题目---简单题
useMemo,memo,useRef等相关hooks详解
做自媒體視頻二次剪輯,怎樣剪輯不算侵權
Niuke: intercepting missiles
APR protocol and defense
How to protect user privacy without password authentication?
Postgresql 13 安装
CyCa children's physical etiquette Ningbo training results assessment came to a successful conclusion
Run faster with go: use golang to serve machine learning
03_ Dataimport of Solr
【NVMe2.0b 14-9】NVMe SR-IOV
Mysql database installation tutorial under Linux