当前位置:网站首页>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

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 :
 Insert picture description here

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 .

原网站

版权声明
本文为[Plug in development]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/186/202207051434313598.html