Wie drehe ich viele digitale Fotos in einem Vorgang um 180 Grad?

20

Ich habe mehrere tausend Bilder mit einer GoPro aufgenommen, die auf dem Kopf stehen.

Ich suche einen Weg, wirklich eine App, die sie alle in einem Arbeitsgang um 180 Grad drehen kann.

Ich habe alle Optionen in der GoPro-eigenen Software geprüft, finde dies jedoch nicht nur für Standbilder. Sie können sich drehen, während Sie ein Video machen, aber ich möchte die einzelnen Bilder behalten.

Ich bin auf Windows.

Johns-305
quelle
Verwandte und sehr relevante Themen: Sind die Rotationen von „Windows Photo Viewer“ verlustfrei?
Scottbb
jpegtran ist der richtige Weg. Es kann JPEGs verlustfrei drehen und / oder spiegeln und ist einfach über ein Skript aufzurufen, da es sich um eine CLI-App handelt.
Sarge Borsch

Antworten:

31

Ich würde alle Anwendungen aus dieser Liste von JPEGclub.org empfehlen , die Software für die Independent JPEG Group entwickeln und warten. Sie haben einen freien Code, jpegtrander einige grundlegende Transformationen (wie Rotation) ausführen kann, ohne das Bild neu zu codieren.

Das "naive" Drehen von Bildern (Rendern in eine Bitmap, Neuausrichtung der Bitmap und erneutes Speichern) kann zu erhöhten JPEG-Artefakten führen - und zu größeren Dateien mit weniger nützlichen Daten.

Die obige Liste enthält Software, die dafür bekannt ist, "den richtigen Weg" zu gehen. Andere Software kann ebenso gut (möglicherweise unter Verwendung einer anderen Codebasis), aber ImageMagick ist leider keine davon. Ab August 2016 gibt es jedoch 87 verschiedene Optionen für viele verschiedene Computerplattformen, einschließlich Windows.


Anmerkung von Kommentaren: Das OP verwendete diese Schleife basierend auf dieser Antwort:

FOR %f IN (.\Src\*.*) DO jpegtran.exe -rotate 180 %f .\Rotated\%~nxf

mit guten Ergebnissen.

mattdm
quelle
1
Beachten Sie, dass die verlustfreie Drehung nur funktioniert, wenn jede Abmessung jedes Bildes ein Vielfaches von 16 Pixeln ist - 8, wenn keine Chroma-Unterabtastung verwendet wird. Andernfalls gehen entweder die überschüssigen Pixel verloren oder das Bild wird mit einem Rand aufgefüllt. Zum Beispiel ist 1080 kein Vielfaches von 16!
Gnubie
2
Ich unterstütze die Empfehlung von jpegtran; Noch besser ist, wenn Sie darauf achten, dass die Miniaturansicht und das OrientationTag des EXIF konsistent exiftranbleiben , sollten Sie in Betracht ziehen, welche in der JPEGclub-Liste unerklärlicherweise fehlen, aber verlustfrei sind. Mein Befehl (unter Linux) dafür wäre exiftran -i -1 *.jpgoder find . -name '*.jpg' -print0 | xjobs -0 -l 10 exiftran -i -1; Dies muss für die Windows-Shell angepasst werden.
Toby Speight
@Toby Gute Ergänzung. Viele (die meisten?) Der aufgelisteten Programme werden auch Metadaten beibehalten und aktualisieren. Dies ist ein Grund, warum ich eine dieser Programme empfehle, anstatt sie nur jpegtrandirekt zu verwenden.
Mattdm
Vielen Dank! Ich habe jpegtran unter Windows verwendet. Die Drehung um 180 ist genau das, was ich brauchte. Ich habe den genauen Batch-Befehl in die Frage für zukünftige ref.
Johns-305
@ Johns-305 Ich bin froh, dass ich helfen konnte. Informationen
mattdm
9

Sie können ImageMagick mit der folgenden rotateOption verwenden :

convert image.jpg -rotate 180 result.jpg

Sie sollten in der Lage sein, diesen Befehl abhängig von Ihrer Umgebung auf mehrere Dateien anzuwenden.

Null
quelle
10
Beachten Sie jedoch, dass dadurch das JPEG neu codiert wird und die Qualität abnimmt.
Mattdm
8

Unter Windows können Sie in ZWEI Vorgängen auf zusätzliche Software verzichten. Wählen Sie die zu drehenden Dateien im Datei-Explorer aus, klicken Sie mit der rechten Maustaste und drehen Sie sie zweimal nach rechts (oder links). Es wird verlustfrei gemacht, wenn das Bild es erlaubt (zB sind die Maße nicht "witzig").

Agent_L
quelle
Was sind "lustige" Dimensionen? Warum verhindern die Abmessungen eines Fotos eine verlustfreie Drehung?
Scottbb
2
Nach dem Lesen Sind "Windows Photo Viewer" -Rotationen verlustfrei? , Ich verstehe jetzt. Beide Dimensionen müssen ein Vielfaches von 8 sein, um verlustfrei gedreht zu werden.
Scottbb
1
Das ist die beste Antwort. Ich habe mich der Seite angeschlossen, um dies zu unterstützen.
12.
5

Sie können xnview unter Windows verwenden, das über einige Stapelverarbeitungsmodi verfügt, und für eine einfache Drehung von Bildern die Option haben, Bilder basierend auf den Exif-Daten zu drehen.

Wählen Sie alle Bilder aus (auch die korrekt ausgerichteten! Sie wissen, dass sie bereits gut ausgerichtet sind), drehen Sie sie "basierend auf exif" und tun Sie dies (ohne Neuberechnung des JPG, also ohne Qualitätsverlust).

Wie sie auf http://newsgroup.xnview.com/viewtopic.php?t=1420 sagen :

Wählen Sie dazu alle Ihre Bilder aus und wählen Sie "Extras> Verlustfreie JPG-Transformationen" (oder Dropdown-Liste des Symbols "Verlustfreie JPG-Transformationen" in der Symbolleiste). Überprüfen Sie im Dialogfeld die Schaltfläche mit "EXIF" und klicken Sie dann auf "Los". XnView dreht die Bilder permanent basierend auf dem EXIF-Ausrichtungsflag.`

Und für das nächste Mal, wenn Sie ein aktuelles genug Gopro haben, möchten Sie möglicherweise auch dessen Funktion überprüfen: https://gopro.com/support/articles/what-is-auto-image-rotation

Olivier Dulac
quelle
Speichert die GoPro tatsächlich die korrekten EXIF-Orientierungsdaten? Die Hero4 / Session haben einen Orientierungssensor, aber ich glaube nicht, dass die älteren Modelle dies tun.
Vclaw
4

Unter der Annahme, dass Ihre Fotos im JPEG-Format vorliegen, bin ich ziemlich an JPEGCrops interessiert , einem einfachen und kostenlosen Tool für die verlustfreie Stapelverarbeitung von Bildern.

Sie können auf bestimmte Seitenverhältnisse zuschneiden und / oder drehen.

ths
quelle
4

Darf ich den Batch-Modus von Irfanview vorschlagen, der nur unter Windows läuft. Irfanview eignet sich auch für einfache Bearbeitungen, ist aber kein GIMP.

Nach der Installation wählen Sie "Datei | Stapelkonvertierung / Umbenennung". Von da an wird es etwas schwierig. Sie müssen alle Dateien auswählen, einen Zielordner angeben und auf die Schaltfläche Erweitert klicken, um die erweiterten Optionen anzuzeigen. Es kann sich um +/- 90 ° drehen, aber um 180 ° zu machen, müssen Sie eine feine Drehung ganz rechts auswählen und 180 ° eingeben. Beachten Sie, dass Sie auch die Größe ändern, die JPEG-Qualität ändern und sie umbenennen können.

Sie können dies auch ziemlich schnell tun, indem Sie in der GUI bleiben und die Tastatur verwenden. Öffnen Sie eine beliebige Datei im Ordner mit Bildern. Drücken Sie zweimal 'R', um zweimal zu drehen. Drücken Sie dann zum Speichern die Tastenkombination Strg-S. Es werden zwei Fenster angezeigt, ein typisches Dateidialogfeld und ein zweites für die JPEG-Komprimierung (wenn das Standardformat von GoPro JPEG ist). Ich würde sicherstellen, dass der Qualitätsfaktor mindestens 90% beträgt. Speichern Sie dann die Datei. Sie sollten in der Lage sein, die Tabulatortaste oder Alt-S zu drücken, um zu speichern. Möglicherweise wird ein Dialogfeld mit dem Typ "Sind Sie sicher" angezeigt (das kann möglicherweise deaktiviert werden). Drücken Sie dann einfach die Leertaste, um zur nächsten Datei im Ordner zu gelangen. Wenn Sie mehr als 50 Dateien haben, ist der Stapel möglicherweise schneller. Zehn Dateien, ich mache einfach das oben.

Das Wichtigste an Irfanview ist, dass es wie Blender ist und Sie nicht fragt, ob Sie Speichern möchten, wenn Sie ein Bild ändern.

RocketFeathers
quelle
3
Dies führt zu einer verlustbehafteten Drehung - beim Drehen werden sie gedreht und anschließend wird das JPEG erneut gespeichert, sodass die Qualität abnimmt. In IrfanView ist es besser, die Funktion "JPEG Lossless rotation" (Umschalt + J) zu verwenden. Beachten Sie, dass Sie die Miniaturansicht verwenden können, um alle Ihre Bilder auszuwählen und dann alle auf einmal zu drehen.
Vclaw
1
@RocketFeathers - Irfanview ist das einfachste Tool, um dies in einer Windows-Umgebung verlustfrei durchzuführen. Aber wie vclaw sagt, ist es viel besser, die "JPEG Lossless Rotation" zu verwenden, um dies zu tun. Bearbeiten Sie Ihre Antwort, um dies widerzuspiegeln, und ich werde sie unterstützen.
Michael C
msgstr "Sie werden nicht gefragt, ob Sie" Speichern "möchten, wenn Sie ein Bild ändern." - Dies kann unter Optionen> Eigenschaften / Einstellungen ...> Nach Änderungen beim Beenden des Programms fragen geändert werden.
MrWhite
3

FSViewer ist ein nützliches Programm, das das kann.

Öffnen Sie den Ordner, in dem sich die Bilder befinden, wählen Sie alles aus, was Sie drehen möchten, drücken Sie F4 und wechseln Sie im folgenden Fenster zur Registerkarte "Stapelkonvertierung". Klicken Sie unten rechts auf "Erweiterte Optionen" und wechseln Sie zur Registerkarte "Drehen". Aktivieren Sie "Drehen", dann "Drehen", wählen Sie "180" aus und klicken Sie auf "OK". Legen Sie fest, wo diese gespeichert werden sollen, und klicken Sie auf "Konvertieren".

Bearbeiten: Eine schnellere und schmerzlosere Methode besteht darin, alle gewünschten Bilder auszuwählen und zweimal auf "Nach rechts drehen und speichern" in der Symbolleiste zu klicken. Sollte für JPEGs nicht destruktiv sein.

K. Minkov
quelle
3

Bei Fenstern können Sie alle markieren, wenn Sie im Explorer sind. Klicken Sie dann mit der rechten Maustaste und wählen Sie Drehen im Uhrzeigersinn. Wenn Sie dies zweimal tun, sind Ihre Bilder jetzt richtig ausgerichtet.

Arjihad
quelle
2

Kennst du GIMP? Es gibt ein Plugin namens BIMP , mit dem Sie die gleichen Vorgänge für eine Reihe von Bildern mithilfe einer grafischen Oberfläche ausführen können. Sie können es einfach mit dem offiziellen Installationsprogramm für Windows installieren.

Sie können sie auch in einem anderen Format oder mit einem anderen Komprimierungsverhältnis erneut speichern, um große Qualitätsverluste zu vermeiden.

Profi-Tipp: Ich habe es geschafft: D

Das Unerwartete
quelle
2
Ich denke, Sie wollten "Disclaimer" anstatt "Pro Tipp" sagen: p Aber großartige Software! Ich habe gelegentlich Batch-Operationen auf GIMP benötigt und stattdessen Matlab-Code geschrieben. Ich werde Ihr Werkzeug für das nächste Mal im Auge behalten :)
Tasos Papastylianou
1

ImageMagick ist eine Reihe von Befehlszeilentools, die mit Bildern arbeiten. Sie können diese Tools mit grundlegenden Unix-Shell-Befehlen kombinieren, um denselben Befehl auf eine Reihe von Dateien anzuwenden. Es gibt viele gute Beispiele unter Wie rotiere ich alle Bilder in einem Verzeichnis mit imagemagick? .

Caleb
quelle
Ähm ... und wenn das OP unter Windows läuft und Cygwin nicht benutzt ...? :) Möglicherweise möchten Sie "und Windows Batch-Dateien" hinzufügen oder die Antwort erweitern, um anzuzeigen, dass ImageMagick nicht unbedingt eine reine UNIX-Lösung ist, sondern nur eine Befehlszeilenlösung.
inkista
1
Werde es heute Nachmittag versuchen. Es sind Windows-Binärdateien verfügbar.
Johns-305
1

Ich persönlich benutze Adobe Lightroom. Bilder können einfach im Stapel gedreht und bearbeitet werden. Wählen Sie einfach die Bilder aus, die Sie drehen möchten, klicken Sie mit der rechten Maustaste und wählen Sie die Option zum Transformieren der Bilder durch Drehen um 180 Grad.

Wenn Sie konsequent mit Tausenden von Bildern arbeiten, für die eine Stapelverarbeitung erforderlich ist, insbesondere wenn diese komplexer sind als das Drehen - wie das Anpassen von Farbe oder Belichtung -, ist LR wahrscheinlich eine solide Investition.

Ich mag es nicht, dass Lightroom Closed Source ist, Geld kostet und nicht auf Linux-Systemen ausgeführt werden kann. Ich habe jedoch festgestellt, dass die Funktionen weit über das hinausgehen, was kostenlos verfügbar ist.

SB Ph.D.
quelle
0

Sie können LiveBlox verwenden und eine Pipeline erstellen, um das Bild zu drehen. Die Demoversion auf http://liveblox.org hat einen Rotationsblock, so dass dies möglich ist.

Es gibt ein Tutorial unter https://www.youtube.com/watch?v=kY0e5msQuiU , in dem gezeigt wird, wie die Stapelbild-Größenänderung vorgenommen wird. Sie müssen lediglich die feste Größenänderung durch den Rotator ersetzen, um die Drehung auszuführen.

Auf diese Weise können Sie jedes Bild mit einem einzigen Klick bearbeiten.

robby987
quelle
-1

$ für F in * jpg; konvertiere -rotate 180 $ F "$ (Basisname $ F .jpg) _R.jpg" && echo "Done $ F"; getan

Erläuterung: * für F im JPG- Teil des Befehls weist den Dateinamen einer Variablen zu, die später aufgerufen werden kann, um die Datei in [ursprünglicher Dateiname} _R.jpg umzubenennen

Die Option "do convert -rotate 180" teilt dem Computer mit, dass Ihre Bilder konvertiert werden sollen, indem sie um 180 Grad gedreht werden.

Der Teil "$ (Basisname $ F .jpg) _R.jpg" des Befehls gibt den neuen Dateinamen an.

Das && teilt dem Computer mit, dass ein zusätzlicher Befehl kommt, aber dass der Computer den Befehl nur ausführen darf, wenn der vorherige Befehl (Drehen und Umbenennen) erfolgreich war.

echo "Done $ F" weist den Computer an, Ihnen mitzuteilen ("echo"), dass jede Datei erfolgreich gedreht wurde. $ F- Unterabschnitt des Befehls ruft die ursprüngliche Dateinamenvariable auf, daher sagt die Ausgabe wahrscheinlich etwas zum Effekt von "Done file1.jpg".

Und man braucht sh / csh / bash, damit dieses Stück funktioniert.

bluerizlagirl
quelle
5
Das funktioniert möglicherweise, aber ohne Erklärung ist es keine gute Antwort. Bitte erläutern Sie in welchem ​​Zusammenhang diese Lösung gegebenenfalls ist.
null
1
Ist dies eine Erweiterung der Antwort von null mit ImageMagick?
MikeW
Dies funktioniert nicht wie erwartet, wenn sich bereits *_R.jpgDateien im Verzeichnis befinden.
pts
Vielen Dank für die Klarstellung, ich bin nicht sicher, ob die Installation einer UNIX-Shell unter Windows ein praktischer Ansatz ist, aber es ist ein Ansatz, der nicht weniger ist.
null
pts, Sie können die _R.jpg zu ändern, was Sie wollen (wie "_rotated.jpg"). Sie haben Recht, dass dies problematisch ist, wenn Sie bereits _R.jpg-Dateien im Verzeichnis haben.
SB Ph.D.