APFS меняет работу скрипта
У меня есть папка (ProjectA), содержащая несколько папок (Pano1, Pano2, Pano3...), которые содержат 2 изображения каждое (Left1 & right1, left2 & right2, left3 & right3...).
Я использовал сценарий в фотошопе для запуска photomerge в каждой папке 'Pano' в ProjectA.
Раньше он отлично работал, когда откроет Left1, затем Right1, в Photomerge и обработает панораму. Всегда налево, потом направо.
Теперь после установки High Sierra SSD, на котором я работаю, изменил форматы файлов на APFS. Теперь иногда требуется Right1, затем Left1, что приводит к тому, что результирующая панорама будет отличаться от того, что требуется для Left1, затем Right1. Он не кажется случайным в том смысле, в каком он выбирает сначала "Влево" или "Вправо", но я не могу понять, какую логику он использует.
Я знаю, что именно APFS вызывает проблему, потому что, если я помещу ProjectA в HFS+ HDD, сценарий будет работать отлично.
Это скрипт, который я использую, любая помощь будет принята с благодарностью!
var runphotomergeFromScript = true; // must be before Photomerge include
//@includepath /Applications/Adobe Photoshop CS6/Presets/Scripts/
//@include "Photomerge.jsx"
//@show include
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();
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' );
// override Photomerge.jsx settings. Default is "Auto". Uncomment to override the default.
//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 = false; // Geometric Distortion Correction'checkbox in dialog
photomerge.removeVignette = false; // '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);
// try to always save as psb for larger files
activeDocument.saveAs( new File( fList[0].parent + '.jpg' ) , jpegOptions, true, Extension.LOWERCASE);
activeDocument.close( SaveOptions.DONOTSAVECHANGES );
}
function savePSB(fileNameAndPath)
{
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( fileNameAndPath ) );
desc19.putBoolean( cTID('LwCs'), true );
executeAction( cTID('save'), desc19, DialogModes.NO );
};