Mein Workflow beinhaltet das Erstellen mehrerer Panoramen in Photoshop nacheinander. Ich habe mehrere Ordner, jeder mit JPEGs, die zu einem Panorama kombiniert und mit einer PSD-Erweiterung gespeichert werden müssen.
Photoshop leistet gute Arbeit bei der Erstellung des Panoramas, aber ich verschwende viel Zeit damit, bei den sich wiederholenden Schritten einzugreifen, Ordner und deren Inhalt auszuwählen, sie in der Panoramabox zu öffnen und die erforderlichen Panoramaoptionen auszuwählen (einschließlich der Überprüfung der Neupositionierung und der Deaktivierung der Überblendung). Bilder zusammen), bevor Photoshop seine magische Fotozusammenführung vornimmt. Außerdem verschwende ich Zeit im Speichern-Dialogfeld, um jedes Bild zu speichern, nachdem das Panorama erstellt wurde.
Ich wollte wissen, ob es ein Skript gibt, das diese ganze Aufgabe automatisieren kann. Damit ich den übergeordneten Ordner (der die Ordner mit den Fotos enthält, die zusammengefügt werden müssen) zur Verfügung stelle und den Computer stundenlang lasse, während er die Fotozusammenführung verarbeitet und die resultierenden PSD-Dateien speichert, ohne dass ich daneben sitzen muss. Ich habe das Gefühl, dass dies möglich ist, weil sich alle Schritte wiederholen.
Alte Foren haben Lösungen für viele ähnliche Probleme, wobei Assistenten Skripte dafür erstellen, aber keiner der Links funktioniert jetzt.
Hier habe ich dieses Skript von Mike Hale leicht modifiziert. Dieses Skript fragt nach einem Ordner und verarbeitet dann alle Unterordner mit Bildern. Dinge zu ändern:
.png
Dateien, ändern Sie die Erweiterung in Zeile 24 ( folders[i].getFiles('*.png');
);Ergebnis (ich habe einige zufällige Google-Bilder für den Test genommen):
var runphotomergeFromScript = true; // must be before Photomerge include
//@includepath "/C/Program Files/Adobe/Adobe Photoshop CC 2019/Presets/Scripts/"
//@include "Photomerge.jsx"
//@show include
var psdOpts = new PhotoshopSaveOptions();
psdOpts.embedColorProfile = true;
psdOpts.alphaChannels = true;
psdOpts.layers = true;
(function()
{
var workFolder = Folder.selectDialog();
if (workFolder == null) return false;
var folders = workFolder.getFiles(function(file)
{
return file instanceof Folder;
});
if (folders.length == 0) return false
for (var i = 0; i < folders.length; i++)
{
var fList = folders[i].getFiles('*.png');
// 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 = false; // 'Blend Images Together' checkbox in dialog
photomerge.lensCorrection = false; // Geometric Distortion Correction'checkbox in dialog
photomerge.removeVignette = false; // 'Vignette Removal' checkbox in dialog
try
{
if (fList.length > 1)
{
photomerge.createPanorama(fList, false);
}
}
catch (e)
{
alert(e + '\nLine: ' + e.line)
}
// saving
var saveFile = {
name: folders[i].name,
path: fList[0].parent
}
savePSB(saveFile)
saveTIF(saveFile)
saveJPG(saveFile)
savePSD(saveFile)
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}
})()
function savePSB(data)
{
var desc = new ActionDescriptor();
var descCompatibility = new ActionDescriptor();
descCompatibility.putBoolean(stringIDToTypeID('maximizeCompatibility'), true);
desc.putObject(charIDToTypeID('As '), charIDToTypeID('Pht8'), descCompatibility);
desc.putPath(charIDToTypeID('In '), new File(data.path + "/" + data.name + ".psb"));
executeAction(charIDToTypeID('save'), desc, DialogModes.NO);
}; // end of savePSB()
function saveTIF(data)
{
var desc = new ActionDescriptor();
var descOptions = new ActionDescriptor();
descOptions.putEnumerated(charIDToTypeID('BytO'), charIDToTypeID('Pltf'), charIDToTypeID('Mcnt'));
descOptions.putEnumerated(stringIDToTypeID('layerCompression'), charIDToTypeID('Encd'), stringIDToTypeID('RLE'));
desc.putObject(charIDToTypeID('As '), charIDToTypeID('TIFF'), descOptions);
desc.putPath(charIDToTypeID('In '), new File(data.path + "/" + data.name + ".tif"));
executeAction(charIDToTypeID('save'), desc, DialogModes.NO);
}; // end of saveTIF()
function saveJPG(data)
{
if (data.path == undefined) return false;
data.name = data.name == undefined ? activeDocument.name : data.name;
data.quality == undefined && data.quality = 75
var options = new ExportOptionsSaveForWeb(),
jpgFile = new File(data.path + '/' + data.name + '.jpg');
options.format = SaveDocumentType.JPEG;
options.quality = data.quality;
activeDocument.exportDocument(jpgFile, ExportType.SAVEFORWEB, options);
}
function savePSD(data)
{
var desc = new ActionDescriptor();
var descOptions = new ActionDescriptor();
descOptions.putBoolean(stringIDToTypeID('maximizeCompatibility'), true);
desc.putObject(charIDToTypeID('As '), charIDToTypeID('Pht3'), descOptions);
desc.putPath(charIDToTypeID('In '), new File(data.path + "/" + data.name + ".psd"));
executeAction(charIDToTypeID('save'), desc, DialogModes.NO);
} // end of savePSD()
psb
als auch tif
unter dem Namen eines Ordners zum Zusammenführen von Dateien. Wenn Sie nur eine der Dateien benötigen, entfernen Sie einfach Zeile 58 oder 59.saveJPG()
verwendet Photoshops Save For Web und kann auch quality
als optionales Argument empfangen werden (standardmäßig 75). Wenn Sie mit einer anderen Qualität speichern möchten, ändern Sie das Argument in etwas wiesaveJPG({name: folders[i].name, path: fList[0].parent, quality: 90})
Herr Online