Aus den angegebenen Bilder schneidet dieses Script einzelne Streifen, abhängig von der Bildbreite und Anzahl der Bilder, und setzt diese Streifen als ein Bild zusammen.
Ein Bild sagt mehr als tausend Worte:
– Bild –
var picSourcePath = "C:\\testbilder\\";
// Achtung: Porträt-Format!
var picWidth = 2448;
var picHeight = 3264;
// Photoshop-Einstellungen sichern
var startRulerUnits = app.preferences.rulerUnits;
var startTypeUnits = app.preferences.typeUnits;
var startDisplayDialogs = app.displayDialogs;
// Dialoge verbergen und Pixel als Einheit einstellen
app.preferences.rulerUnits = Units.PIXELS;
app.preferences.typeUnits = TypeUnits.PIXELS;
app.displayDialogs = DialogModes.NO;
// Liste aller Dateien und Ordner erstellen
var picFolder = Folder(picSourcePath);
var fileList = picFolder.getFiles();
// Anzahl der Dateien und Breite des Streifens berechnen
var picCnt = fileList.length;
var stripWidth = picHeight / picCnt;
// Pruefung ob auch Dateien und Ordner vorhanden sind
if (picSourcePath != null) {
// Quellbilder in Schleife oeffnen
for (var i=0; i<picCnt; i++) {
// Nur Dateien (und keine Ordner) oeffnen
if (fileList[i] instanceof File) {
open(fileList[i]);
// Selektionsrahmen fürs Einfügen des vorherigen Streiens
selRegion = Array(Array(0, 0),
Array(picWidth, 0),
Array(picWidth, stripWidth*i),
Array(0, stripWidth*i),
Array(0, 0));
// Selektion setzen
activeDocument.selection.select(selRegion);
// Beim ersten Bild kann noch nichts von vorherigen Bilder eingefügt werden
if (i != 0) {
activeDocument.paste();
}
// Selektion entfernen
activeDocument.selection.deselect();
// Auf Hintergrundebene zusammenfügen
activeDocument.flatten();
// Selektionsrahmen für Kopieren
selRegion = Array(Array(0, 0),
Array(picWidth, 0),
Array(picWidth, stripWidth*(i+1)),
Array(0, stripWidth*(i+1)),
Array(0, 0));
// Selektion setzen
activeDocument.selection.select(selRegion);
// Selektion kopieren
activeDocument.selection.copy(); // true geht nicht !?!?!
// Bis auf das letzte Bild alle schließen (ohne Nachfrage)
if (i < picCnt-1) {
activeDocument.close(SaveOptions.DONOTSAVECHANGES);
}
}
}
// Selektion entfernen und Bild drehen
activeDocument.selection.deselect();
activeDocument.rotateCanvas(-90);
}
// Photoshop-Einstellungen zuruecksetzen
app.preferences.rulerUnits = startRulerUnits;
app.preferences.typeUnits = startTypeUnits;
app.displayDialogs = startDisplayDialogs;