Question
How to make a script open multiple png sequences inside a folder once
So I have this script that opens an image sequence, cuts the frames in half, and converts it to a GIF.
I want it to open ABC001 as a sequence, run the steps, and then skip ABC002...ABC00N and move on to DEF001 and so on.
How could I achieve this?
#target photoshop
//
// gif.jsx
//
//
// Generated Sat Apr 29 2023 10:11:00 GMT-0400
//
cTID = function(s) { return app.charIDToTypeID(s); };
sTID = function(s) { return app.stringIDToTypeID(s); };
//
//==================== gif ==============
//
function gif() {
// Open
function step1(enabled, withDialog) {
if (enabled != undefined && !enabled)
return;
var dialogMode = (withDialog ? DialogModes.ALL : DialogModes.NO);
var desc1 = new ActionDescriptor();
desc1.putPath(cTID('null'), new File("~/Downloads/ABC001.png"));
desc1.putBoolean(sTID("sequence"), true);
desc1.putBoolean(sTID("dontRecord"), false);
desc1.putBoolean(sTID("forceNotify"), true);
desc1.putDouble(sTID("frameRate"), 60);
executeAction(cTID('Opn '), desc1, dialogMode);
};
// Set
function step2(enabled, withDialog) {
if (enabled != undefined && !enabled)
return;
var dialogMode = (withDialog ? DialogModes.ALL : DialogModes.NO);
var desc1 = new ActionDescriptor();
var ref1 = new ActionReference();
ref1.putProperty(cTID('Prpr'), sTID("documentTimelineSettings"));
ref1.putClass(sTID("timeline"));
desc1.putReference(cTID('null'), ref1);
desc1.putDouble(sTID("frameRate"), 30);
executeAction(cTID('setd'), desc1, dialogMode);
};
// Export
function step3(enabled, withDialog) {
if (enabled != undefined && !enabled)
return;
var dialogMode = (withDialog ? DialogModes.ALL : DialogModes.NO);
var desc1 = new ActionDescriptor();
var desc2 = new ActionDescriptor();
desc2.putEnumerated(cTID('Op '), cTID('SWOp'), cTID('OpSa'));
desc2.putBoolean(cTID('DIDr'), true);
desc2.putPath(cTID('In '), new File("~/Downloads/"));
desc2.putEnumerated(cTID('Fmt '), cTID('IRFm'), cTID('GIFf'));
desc2.putBoolean(cTID('Intr'), false);
desc2.putEnumerated(cTID('RedA'), cTID('IRRd'), cTID('Adpt'));
desc2.putBoolean(cTID('RChT'), false);
desc2.putBoolean(cTID('RChV'), false);
desc2.putBoolean(cTID('AuRd'), false);
desc2.putInteger(cTID('NCol'), 256);
desc2.putInteger(cTID('DChS'), 0);
desc2.putInteger(cTID('DCUI'), 0);
desc2.putBoolean(cTID('DChT'), false);
desc2.putBoolean(cTID('DChV'), false);
desc2.putInteger(cTID('WebS'), 0);
desc2.putEnumerated(cTID('TDth'), cTID('IRDt'), cTID('None'));
desc2.putInteger(cTID('TDtA'), 100);
desc2.putInteger(cTID('Loss'), 0);
desc2.putInteger(cTID('LChS'), 0);
desc2.putInteger(cTID('LCUI'), 100);
desc2.putBoolean(cTID('LChT'), false);
desc2.putBoolean(cTID('LChV'), false);
desc2.putBoolean(cTID('Trns'), true);
desc2.putBoolean(cTID('Mtt '), false);
desc2.putEnumerated(cTID('Dthr'), cTID('IRDt'), cTID('Dfsn'));
desc2.putInteger(cTID('DthA'), 100);
desc2.putInteger(cTID('MttR'), 0);
desc2.putInteger(cTID('MttG'), 0);
desc2.putInteger(cTID('MttB'), 0);
desc2.putBoolean(cTID('SHTM'), false);
desc2.putBoolean(cTID('SImg'), true);
desc2.putEnumerated(cTID('SWsl'), cTID('STsl'), cTID('SLAl'));
desc2.putEnumerated(cTID('SWch'), cTID('STch'), cTID('CHsR'));
desc2.putEnumerated(cTID('SWmd'), cTID('STmd'), cTID('MDCC'));
desc2.putBoolean(cTID('ohXH'), false);
desc2.putBoolean(cTID('ohIC'), true);
desc2.putBoolean(cTID('ohAA'), true);
desc2.putBoolean(cTID('ohQA'), true);
desc2.putBoolean(cTID('ohCA'), false);
desc2.putBoolean(cTID('ohIZ'), true);
desc2.putEnumerated(cTID('ohTC'), cTID('SToc'), cTID('OC03'));
desc2.putEnumerated(cTID('ohAC'), cTID('SToc'), cTID('OC03'));
desc2.putInteger(cTID('ohIn'), -1);
desc2.putEnumerated(cTID('ohLE'), cTID('STle'), cTID('LE03'));
desc2.putEnumerated(cTID('ohEn'), cTID('STen'), cTID('EN00'));
desc2.putBoolean(cTID('olCS'), false);
desc2.putEnumerated(cTID('olEC'), cTID('STst'), cTID('ST00'));
desc2.putEnumerated(cTID('olWH'), cTID('STwh'), cTID('WH01'));
desc2.putEnumerated(cTID('olSV'), cTID('STsp'), cTID('SP04'));
desc2.putEnumerated(cTID('olSH'), cTID('STsp'), cTID('SP04'));
var list1 = new ActionList();
var desc3 = new ActionDescriptor();
desc3.putEnumerated(cTID('ncTp'), cTID('STnc'), cTID('NC00'));
list1.putObject(cTID('SCnc'), desc3);
var desc4 = new ActionDescriptor();
desc4.putEnumerated(cTID('ncTp'), cTID('STnc'), cTID('NC19'));
list1.putObject(cTID('SCnc'), desc4);
var desc5 = new ActionDescriptor();
desc5.putEnumerated(cTID('ncTp'), cTID('STnc'), cTID('NC28'));
list1.putObject(cTID('SCnc'), desc5);
var desc6 = new ActionDescriptor();
desc6.putEnumerated(cTID('ncTp'), cTID('STnc'), cTID('NC24'));
list1.putObject(cTID('SCnc'), desc6);
var desc7 = new ActionDescriptor();
desc7.putEnumerated(cTID('ncTp'), cTID('STnc'), cTID('NC24'));
list1.putObject(cTID('SCnc'), desc7);
var desc8 = new ActionDescriptor();
desc8.putEnumerated(cTID('ncTp'), cTID('STnc'), cTID('NC24'));
list1.putObject(cTID('SCnc'), desc8);
desc2.putList(cTID('olNC'), list1);
desc2.putBoolean(cTID('obIA'), false);
desc2.putString(cTID('obIP'), "");
desc2.putEnumerated(cTID('obCS'), cTID('STcs'), cTID('CS01'));
var list2 = new ActionList();
var desc9 = new ActionDescriptor();
desc9.putEnumerated(cTID('ncTp'), cTID('STnc'), cTID('NC01'));
list2.putObject(cTID('SCnc'), desc9);
var desc10 = new ActionDescriptor();
desc10.putEnumerated(cTID('ncTp'), cTID('STnc'), cTID('NC20'));
list2.putObject(cTID('SCnc'), desc10);
var desc11 = new ActionDescriptor();
desc11.putEnumerated(cTID('ncTp'), cTID('STnc'), cTID('NC02'));
list2.putObject(cTID('SCnc'), desc11);
var desc12 = new ActionDescriptor();
desc12.putEnumerated(cTID('ncTp'), cTID('STnc'), cTID('NC19'));
list2.putObject(cTID('SCnc'), desc12);
var desc13 = new ActionDescriptor();
desc13.putEnumerated(cTID('ncTp'), cTID('STnc'), cTID('NC06'));
list2.putObject(cTID('SCnc'), desc13);
var desc14 = new ActionDescriptor();
desc14.putEnumerated(cTID('ncTp'), cTID('STnc'), cTID('NC24'));
list2.putObject(cTID('SCnc'), desc14);
var desc15 = new ActionDescriptor();
desc15.putEnumerated(cTID('ncTp'), cTID('STnc'), cTID('NC24'));
list2.putObject(cTID('SCnc'), desc15);
var desc16 = new ActionDescriptor();
desc16.putEnumerated(cTID('ncTp'), cTID('STnc'), cTID('NC24'));
list2.putObject(cTID('SCnc'), desc16);
var desc17 = new ActionDescriptor();
desc17.putEnumerated(cTID('ncTp'), cTID('STnc'), cTID('NC22'));
list2.putObject(cTID('SCnc'), desc17);
desc2.putList(cTID('ovNC'), list2);
desc2.putBoolean(cTID('ovCM'), false);
desc2.putBoolean(cTID('ovCW'), true);
desc2.putBoolean(cTID('ovCU'), false);
desc2.putBoolean(cTID('ovSF'), true);
desc2.putBoolean(cTID('ovCB'), true);
desc2.putString(cTID('ovSN'), "images");
desc1.putObject(cTID('Usng'), sTID("SaveForWeb"), desc2);
executeAction(cTID('Expr'), desc1, dialogMode);
};
// Close
function step4(enabled, withDialog) {
if (enabled != undefined && !enabled)
return;
var dialogMode = (withDialog ? DialogModes.ALL : DialogModes.NO);
var desc1 = new ActionDescriptor();
desc1.putEnumerated(cTID('Svng'), cTID('YsN '), cTID('N '));
desc1.putInteger(cTID('DocI'), 81);
desc1.putBoolean(sTID("forceNotify"), true);
executeAction(cTID('Cls '), desc1, dialogMode);
};
step1(); // Open
step2(); // Set
step3(); // Export
step4(); // Close
};
//=========================================
// gif.main
//=========================================
//
gif.main = function () {
gif();
};
gif.main();
// EOF
"gif.jsx"
// EOF
