How can I trim transparent pixels from a layered Photoshop document (.psd)? I wish to also remove areas hidden by clipping masks.
Here is a function that will trim document transparency and remove masked areas. It is generated by ScriptListener for the menu item Image > Trim with the settings shown. Minor code cleanup for readability.
function trimDocTransparency() {
var desc = new ActionDescriptor()
var idtrimBasedOn = stID( "trimBasedOn" )
desc.putEnumerated( idtrimBasedOn, idtrimBasedOn, chID( "Trns" ) )
desc.putBoolean( chID( "Top " ), true )
desc.putBoolean( chID( "Btom" ), true )
desc.putBoolean( chID( "Left" ), true )
desc.putBoolean( chID( "Rght" ), true )
executeAction( stID( "trim" ), desc, DialogModes.NO )
} // trimDocTransparency
function chID( a ) { return charIDToTypeID( a )}
function stID( a ) { return stringIDToTypeID( a )}
To use this solution, open & activate the intended document and then invoke the function in your script like this:
trimDocTransparency()