当前位置:网站首页>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 .
边栏推荐
- 2022年国内正规的期货公司平台有哪些啊?方正中期怎么样?安全可靠吗?
- be careful! Software supply chain security challenges continue to escalate
- Explain Vue's plan to clean up keepalive cache in time
- Shanghai under layoffs
- IPv6与IPv4的区别 网信办等三部推进IPv6规模部署
- Fonctions communes de thymeleaf
- 外盘入金都不是对公转吗,那怎么保障安全?
- Drive brushless DC motor based on Ti drv10970
- Topology可视化绘图引擎
- CPU design related notes
猜你喜欢
leetcode:881. lifeboat
Qingda KeYue rushes to the science and Innovation Board: the annual revenue is 200million, and it is proposed to raise 750million
【NVMe2.0b 14-9】NVMe SR-IOV
Drive brushless DC motor based on Ti drv10970
Change multiple file names with one click
SaaS multi tenant solution for FMCG industry to build digital marketing competitiveness of the whole industry chain
Solution of commercial supply chain collaboration platform in household appliance industry: lean supply chain system management, boosting enterprise intelligent manufacturing upgrading
Section - left closed right open
APR protocol and defense
729. 我的日程安排表 I :「模拟」&「线段树(动态开点)」&「分块 + 位运算(分桶)」
随机推荐
How to make a second clip of our media video without infringement
Topology可视化绘图引擎
家用电器行业商业供应链协同平台解决方案:供应链系统管理精益化,助推企业智造升级
【華為機試真題詳解】歡樂的周末
【NVMe2.0b 14-9】NVMe SR-IOV
用 Go 跑的更快:使用 Golang 为机器学习服务
2022年国内正规的期货公司平台有哪些啊?方正中期怎么样?安全可靠吗?
Topology visual drawing engine
LeetCode_ 69 (square root of x)
CyCa children's physical etiquette Ningbo training results assessment came to a successful conclusion
SSL证书错误怎么办?浏览器常见SSL证书报错解决办法
Thymeleaf th:with use of local variables
在Pytorch中使用Tensorboard可视化训练过程
分享 20 个稀奇古怪的 JS 表达式,看看你能答对多少
想进阿里必须啃透的12道MySQL面试题
Online electronic component purchasing Mall: break the problem of information asymmetry in the purchasing process, and enable enterprises to effectively coordinate management
729. My schedule I: "simulation" & "line segment tree (dynamic open point) &" block + bit operation (bucket Division) "
Matrix chain multiplication dynamic programming example
周大福践行「百周年承诺」,真诚服务推动绿色环保
[C question set] of Ⅷ