当前位置:网站首页>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 .
边栏推荐
- Solution of commercial supply chain collaboration platform in household appliance industry: lean supply chain system management, boosting enterprise intelligent manufacturing upgrading
- Thymeleaf th:classappend attribute append th:styleappend style append th:data- custom attribute
- Webrtc learning (II)
- Structure - C language
- Section - left closed right open
- Topology可视化绘图引擎
- FR练习题目---综合题
- [detailed explanation of Huawei machine test] character statistics and rearrangement
- SaaS multi tenant solution for FMCG industry to build digital marketing competitiveness of the whole industry chain
- LeetCode_ 67 (binary sum)
猜你喜欢

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

How to choose the appropriate certificate brand when applying for code signing certificate?
![[summary of leetcode weekly competition] the 81st fortnight competition of leetcode (6.25)](/img/d7/f49bca8da2ce286c18508325985990.png)
[summary of leetcode weekly competition] the 81st fortnight competition of leetcode (6.25)

Microframe technology won the "cloud tripod Award" at the global Cloud Computing Conference!

Thymeleaf 使用后台自定义工具类处理文本

SaaS multi tenant solution for FMCG industry to build digital marketing competitiveness of the whole industry chain

安装配置Jenkins

【leetcode周赛总结】LeetCode第 81 场双周赛(6.25)

Under the crisis of enterprise development, is digital transformation the future savior of enterprises

微帧科技荣获全球云计算大会“云鼎奖”!
随机推荐
mysql8.0JSON_ Instructions for using contains
Sharing the 12 most commonly used regular expressions can solve most of your problems
Detailed explanation of usememo, memo, useref and other relevant hooks
【NVMe2.0b 14-9】NVMe SR-IOV
Solution of commercial supply chain collaboration platform in household appliance industry: lean supply chain system management, boosting enterprise intelligent manufacturing upgrading
一键更改多个文件名字
Opengauss database source code analysis series articles -- detailed explanation of dense equivalent query technology (Part 2)
APR protocol and defense
LeetCode_ 3 (longest substring without repeated characters)
PostgreSQL 13 installation
Loop invariant
CyCa children's physical etiquette Ningbo training results assessment came to a successful conclusion
Under the crisis of enterprise development, is digital transformation the future savior of enterprises
STM32+BH1750光敏传感器获取光照强度
Drive brushless DC motor based on Ti drv10970
Thymeleaf 常用函數
[learning notes] stage test 1
PHP - fatal error: allowed memory size of 314572800 bytes exhausted
Google eventbus usage details
Thymeleaf th:classappend属性追加 th:styleappend样式追加 th:data-自定义属性