How to run Photoshop jsx on all files in folder
Hello everyone.
I have script that looks like this (btw, using Photoshop CS5)
#target photoshop
// ========== set units to pixels ==========//
app.preferences.rulerUnits = Units.PIXELS;
//========== set background to white ==========//
var backgroundC = new SolidColor();
backgroundC.rgb.red = 255;
backgroundC.rgb.green = 255;
backgroundC.rgb.blue = 255;
backgroundColor = backgroundC;
//========== set var to active document ==========//
var doc = activeDocument;
//========== main() ==========//
function main(){
if(!documents.length) return;
var Name = app.activeDocument.name.replace(/\.[^\.]+$/, '');
var CurrentPath = activeDocument.path;
var saveFolder = Folder(CurrentPath + '/' + 'Shop');
if(!saveFolder.exists) saveFolder.create();
var saveFile = File(saveFolder + "/" + Name + ".jpg");
if(saveFile.exists){
if(!confirm("Overwrite existing document?")) return;
saveFile.remove();
}
SaveForWeb(saveFile,70); //change to 60 for 60%
}
function SaveForWeb(saveFile,jpegQuality) {
var sfwOptions = new ExportOptionsSaveForWeb();
sfwOptions.format = SaveDocumentType.JPEG;
sfwOptions.includeProfile = false;
sfwOptions.interlaced = 0;
sfwOptions.optimized = true;
sfwOptions.quality = jpegQuality; //0-100
activeDocument.exportDocument(saveFile, ExportType.SAVEFORWEB, sfwOptions);
}
//========== Set model to RGB ==========//
doc.changeMode ( ChangeMode.RGB );
//========== set canvas depending on initial width and height ==========//
doc.resizeCanvas(Math.max(doc.width,doc.height),Math.max(doc.width,doc.height))
//========== check size and do actions acording to size of document ==========//
if (doc.width > 750){
doc.resizeImage(750,750);
main();
doc.close(SaveOptions.DONOTSAVECHANGES);
} else {
doc.resizeCanvas(750,750);
main ();
doc.close(SaveOptions.DONOTSAVECHANGES);
}
Now, I am using it as scripts event manager, on document open trigger, and then I drag and drop images, and script do its job. However, if I drag and drop 200 images, PS will load ALL of them, hog my PC, and probably crash.
My question is, how can I set this JSX to run on folder, similar to batch dialog, or image processor, but on those two I can only select Action, no option to select existing jsx script. (guys from Photoshop General Discussion suggested to record script as Action, but was looking for something more "elegant" so to speak)
Thanks in advance
