A photomerge automation with windows batch file to move JPGs group wise into sub folders
var runphotomergeFromScript = true;
// @includepath "/c/Program Files/Adobe/Adobe Photoshop CC 2014/Presets/Scripts/";
// @include "Photomerge.jsx";
// @show include;
psdOpts = new PhotoshopSaveOptions();
psdOpts.embedColorProfile = true;
psdOpts.alphaChannels = true;
psdOpts.layers = true;
var workFolder = Folder.selectDialog();
var folders = workFolder.getFiles( function( file ) { return file instanceof Folder; } );
for( var i = 0; i < folders.length; i++ ) {
var folder = folders[i];
var fList = folder.getFiles( '*.jpg' );
var filename = folder.toString().substring(folder.toString().lastIndexOf("/") + 1, folder.toString().length);
// photomerge.alignmentKey = "Auto";
// photomerge.alignmentKey = "Prsp";
photomerge.alignmentKey = "cylindrical";
// photomerge.alignmentKey = "spherical";
// photomerge.alignmentKey = "sceneCollage";
// photomerge.alignmentKey = "translation"; // "Reposition" in layout dialog
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 > 1 ) {
photomerge.createPanorama(fList,false);
}
// The merged doc will be the activeDocument
// activeDocument.saveAs( new File( fList[0].parent + '/Stitch.psb' ) , psdOpts, true, Extension.LOWERCASE);
// savePSB(workFolder + '/' + i + '.psb');
// saveTIFF(workFolder + '/' + i + '.tif');
saveJPEG(workFolder + '/' + filename + '.jpg', 10);
activeDocument.close( SaveOptions.DONOTSAVECHANGES );
}
function savePSB(saveFile) {
function cTID(s) { return app.charIDToTypeID(s); };
function sTID(s) { return app.stringIDToTypeID(s); };
var desc19 = new ActionDescriptor();
var desc20 = new ActionDescriptor();
desc20.putBoolean( sTID('maximizeCompatibility'), true );
desc19.putObject( cTID('As '), cTID('Pht8'), desc20 );
desc19.putPath( cTID('In '), new File( saveFile ) );
desc19.putBoolean( cTID('LwCs'), true );
executeAction( cTID('save'), desc19, DialogModes.NO );
};
function saveTIFF(saveFile) {
tiffSaveOptions = new TiffSaveOptions();
tiffSaveOptions.embedColorProfile = true;
tiffSaveOptions.alphaChannels = true;
tiffSaveOptions.layers = true;
tiffSaveOptions.imageCompression = TIFFEncoding.JPEG;
tiffSaveOptions.jpegQuality=10;
activeDocument.saveAs( new File(saveFile) , tiffSaveOptions, true, Extension.LOWERCASE);
}
function saveJPEG(saveFile, jpegQuality) {
var doc = activeDocument;
if (doc.bitsPerChannel != BitsPerChannelType.EIGHT) doc.bitsPerChannel = BitsPerChannelType.EIGHT;
jpgSaveOptions = new JPEGSaveOptions();
jpgSaveOptions.embedColorProfile = true;
jpgSaveOptions.formatOptions = FormatOptions.STANDARDBASELINE;
jpgSaveOptions.matte = MatteType.NONE;
jpgSaveOptions.quality = jpegQuality;
activeDocument.saveAs( new File(saveFile), jpgSaveOptions, true,Extension.LOWERCASE);
}
@echo off
set Counter=0
set FolderNumber=0
set FolderName=0
set Merge=5
set Dir="%~dp0"
for %%f in (*.jpg) do call :p "%%f"
goto :eof
:p
set /a Counter+=1
set FolderName=%FolderNumber%
if 1%FolderNumber% lss 100 set FolderName=0%FolderNumber%
if not exist %Dir%\%FolderName%\ mkdir %Dir%\%FolderName%\
move %1 %Dir%\%FolderName%\
if %Counter%==%Merge% (
set Counter=0
set /a FolderNumber+=1
)
goto :eof