Photoshop,如何编写动作调色板更改脚本
Photoshop, how to script changes to Actions Palette
我是 Photoshop 脚本的新手。
我正在考虑通过 Actions 为许多用户提供一系列工具。希望这可以自动化,以便在添加或删除新工具时可以在启动 Photoshop 时为用户更新动作调色板。
我希望创建一个启动脚本来按名称搜索现有的 Action 文件夹,将其删除(加载同名的 .atn 文件追加而不是覆盖),然后加载新的.atn 文件和我的更新列表。不幸的是,我还没有找到任何可以修改动作调色板的东西。
我对编辑存储的 Action Palette 信息的其他想法似乎不可行,因为“Actions Palette.psp”是某种描述的二进制文件。
是否有任何可用的功能可用于编辑动作调色板或我可以可靠地自动修改它的其他方式?
在此处找到了编辑动作调色板的解决方案:
https://www.ps-scripts.com/viewtopic.php?t=6704
//loading
app.load(new File("/c/temp/actionSet.atn"));
//unloading action
function unLoadAction(action){
var desc = new ActionDescriptor();
var ref = new ActionReference();
ref.putName( charIDToTypeID( "Actn" ), decodeURI(action));
desc.putReference( charIDToTypeID( "null" ), ref );
executeAction( charIDToTypeID( "Dlt " ), desc, DialogModes.NO );
};
//unloading set
function unLoadActionSet(actionSet){
var desc = new ActionDescriptor();
var ref = new ActionReference();
ref.putName( charIDToTypeID( "ASet" ), decodeURI(actionSet));
desc.putReference( charIDToTypeID( "null" ), ref );
executeAction( charIDToTypeID( "Dlt " ), desc, DialogModes.NO );
};
我是 Photoshop 脚本的新手。
我正在考虑通过 Actions 为许多用户提供一系列工具。希望这可以自动化,以便在添加或删除新工具时可以在启动 Photoshop 时为用户更新动作调色板。
我希望创建一个启动脚本来按名称搜索现有的 Action 文件夹,将其删除(加载同名的 .atn 文件追加而不是覆盖),然后加载新的.atn 文件和我的更新列表。不幸的是,我还没有找到任何可以修改动作调色板的东西。
我对编辑存储的 Action Palette 信息的其他想法似乎不可行,因为“Actions Palette.psp”是某种描述的二进制文件。
是否有任何可用的功能可用于编辑动作调色板或我可以可靠地自动修改它的其他方式?
在此处找到了编辑动作调色板的解决方案: https://www.ps-scripts.com/viewtopic.php?t=6704
//loading
app.load(new File("/c/temp/actionSet.atn"));
//unloading action
function unLoadAction(action){
var desc = new ActionDescriptor();
var ref = new ActionReference();
ref.putName( charIDToTypeID( "Actn" ), decodeURI(action));
desc.putReference( charIDToTypeID( "null" ), ref );
executeAction( charIDToTypeID( "Dlt " ), desc, DialogModes.NO );
};
//unloading set
function unLoadActionSet(actionSet){
var desc = new ActionDescriptor();
var ref = new ActionReference();
ref.putName( charIDToTypeID( "ASet" ), decodeURI(actionSet));
desc.putReference( charIDToTypeID( "null" ), ref );
executeAction( charIDToTypeID( "Dlt " ), desc, DialogModes.NO );
};