There are many ways to do it, so the best way would be How do you do it in Photoshop? That could then be scripted.
Here is a very quick and dirty way of removing all white...
if(activeDocument.activeLayer.isBackgroundLayer){
activeDocument.activeLayer.isBackgroundLayer = false;
}
removeWhite();
function removeWhite() {
function cTID(s) { return app.charIDToTypeID(s); };
function sTID(s) { return app.stringIDToTypeID(s); };
var desc4 = new ActionDescriptor();
var ref2 = new ActionReference();
ref2.putEnumerated( cTID('Lyr '), cTID('Ordn'), cTID('Trgt') );
desc4.putReference( cTID('null'), ref2 );
var desc5 = new ActionDescriptor();
var list1 = new ActionList();
var desc6 = new ActionDescriptor();
var ref3 = new ActionReference();
ref3.putEnumerated( cTID('Chnl'), cTID('Chnl'), cTID('Gry ') );
desc6.putReference( cTID('Chnl'), ref3 );
desc6.putInteger( cTID('SrcB'), 0 );
desc6.putInteger( cTID('Srcl'), 0 );
desc6.putInteger( cTID('SrcW'), 250 );
desc6.putInteger( cTID('Srcm'), 250 );
desc6.putInteger( cTID('DstB'), 0 );
desc6.putInteger( cTID('Dstl'), 0 );
desc6.putInteger( cTID('DstW'), 255 );
desc6.putInteger( cTID('Dstt'), 255 );
list1.putObject( cTID('Blnd'), desc6 );
desc5.putList( cTID('Blnd'), list1 );
var desc7 = new ActionDescriptor();
desc7.putUnitDouble( cTID('Scl '), cTID('#Prc'), 99.999979 );
desc5.putObject( cTID('Lefx'), cTID('Lefx'), desc7 );
desc4.putObject( cTID('T '), cTID('Lyr '), desc5 );
executeAction( cTID('setd'), desc4, DialogModes.NO );
};
... View more