-
Notifications
You must be signed in to change notification settings - Fork 1
/
PhotoMergeBatch.jsx
executable file
·63 lines (59 loc) · 2.39 KB
/
PhotoMergeBatch.jsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
var runphotomergeFromScript = true; // must be before Photomerge include
//@includepath "/Applications/Adobe Photoshop CS5/Presets/Scripts/"
//@includepath "/c/Program Files (x86)/Adobe/Adobe Photoshop CS5/Presets/Scripts/"
//@includepath "/c/Program Files/Adobe/Adobe Photoshop CS5/Presets/Scripts/"
//@include "Photomerge.jsx"
//@show include
var psdOpts = new PhotoshopSaveOptions();
psdOpts.embedColorProfile = true;
psdOpts.alphaChannels = true;
psdOpts.layers = true;
var jpegOptions = new JPEGSaveOptions();
jpegOptions.quality=12;
jpegOptions.scans=5;
var workFolder = Folder.selectDialog();
parseFolder(workFolder);
function parseFolder(folder) {
var folders = folder.getFiles( function( file ) { return file instanceof Folder; } );
var jpg= folder.getFiles("*.jpg");
var dng= folder.getFiles("*.dng");
var cr2= folder.getFiles("*.CR2");
var files=jpg.concat(dng, cr2);
for(var i = 0; i < folders.length; i++ ) {
try {
parseFolder(folders[i]);
} catch(err) {
}
}
if (files.length>0) {
try {
mergeImages(files);
} catch (err) {
alert(err);
}
}
}
function mergeImages(fList) {
var alignmentKeys=Array("Prsp","cylindrical","spherical","sceneCollage","translation");
for (var j=0; j< alignmentKeys.length; j++) {
// override Photomerge.jsx settings. Default is "Auto". Uncomment to override the default.
photomerge.alignmentKey=alignmentKeys[j];
//photomerge.alignmentKey = "Auto";
photomerge.alignmentKey = "Prsp";
photomerge.alignmentKey = "cylindrical";
photomerge.alignmentKey = "spherical";
photomerge.alignmentKey = "sceneCollage";
photomerge.alignmentKey = "translation"; // "Reposition" in layout dialog
// other setting that may need to be changed. Defaults below
photomerge.advancedBlending = true; // 'Bend Images Together' checkbox in dialog
photomerge.lensCorrection = true; // Geometric Distortion Correction'checkbox in dialog
photomerge.removeVignette = true; // 'Vignette Removal' checkbox in dialog
if( fList.length > 0) {
photomerge.createPanorama(fList,false);
}
// The merged doc will be the activeDocument
activeDocument.saveAs( new File( fList[0].parent +"." + alignmentKeys[j] + '.psd' ) , psdOpts, true, Extension.LOWERCASE);
activeDocument.saveAs( new File( fList[0].parent +"." + alignmentKeys[j] + '.jpg' ) , jpegOptions, true, Extension.LOWERCASE);
activeDocument.close( SaveOptions.DONOTSAVECHANGES );
}
}