OK, so my Frankenstein’s monster code is below, I have commented out the JPEG options and transplanted some code for saving PSD, however I think that I am going wrong somewhere on line 23? I have tried different combinations of code from the commented lines 02 and 03. I have commented out the original JPEG options for reference (lines 24, 38-46). I am like a bull in a china shop when it comes to code!
// https://forums.adobe.com/thread/2034807
// http://stackoverflow.com/questions/5796764/from-photoshop-actions-to-photoshop-scripting
// https://github.com/joonaspaakko/Photoshop-Auto-Save-PSD-script/blob/master/Auto%20Save%20PSD.jsx
#target photoshop;
app.bringToFront();
main();
function main(){
if(!documents.length) return;
try{
var Path = activeDocument.path;
}catch(err){
alert("You save your document before running this script!");
return;
}
var doc = app.activeDocument;
var now = doc.activeHistoryState;
var Snaps = snapShotList();
var outputFolder = Folder(Path + "/History Snapshots as PSD");
if(!outputFolder.exists) outputFolder.create();
for (var z in Snaps){
revertNamedSnapshot(Snaps );
var saveFile = File(outputFolder + "/" + Snaps .toString().replace(/\./g,'_') + ".psd");
PhotoshopSaveOptions(psdOptions, true);
// SaveForWeb(saveFile,80);
}
doc.activeHistoryState = now;
};
//Save as PSD
var psdOptions = new PhotoshopSaveOptions();
psdOptions.alphaChannels = true;
psdOptions.annotations = true;
psdOptions.embedColorProfile = true;
psdOptions.layers = true;
psdOptions.spotColors = true;
// function SaveForWeb(saveFile,jpegQuality) {
// var sfwOptions = new ExportOptionsSaveForWeb();
// sfwOptions.format = SaveDocumentType.JPEG;
// sfwOptions.includeProfile = false;
// sfwOptions.interlaced = 0;
// sfwOptions.optimized = true;
// sfwOptions.quality = jpegQuality;
// activeDocument.exportDocument(saveFile, ExportType.SAVEFORWEB, sfwOptions);
// };
function snapShotList(){
var doc = app.activeDocument;
var hs = doc.historyStates;
var now = doc.activeHistoryState;
var Name = new Array();
for(var a =0;a <hs.length;a++){
if(hs.snapshot) {
doc.activeHistoryState = hs;
Name.push(hs.name);
}
}
doc.activeHistoryState = now;
return Name;
};
function revertNamedSnapshot(name) {
var desc = new ActionDescriptor();
var ref = new ActionReference();
ref.putName( charIDToTypeID('SnpS'), name );
desc.putReference( charIDToTypeID('null'), ref );
executeAction( charIDToTypeID('slct'), desc, DialogModes.NO );
};
... View more