# [solved] Viele Bilder (.jpg) manuell verlustfrei drehen

## schachti

Mit jpegtran und exifautotran aus media-libs/jpeg lassen sich .jpg-Bilder ja verlustfrei drehen. Nun habe ich allerdings eine größe Menge von Bildern, und da bei vielen exifautotran beim automatischen Drehen versagt muss ich das wohl oder übel per Hand machen. Ich suche daher ein Tool, mit dem das möglichst komfortabel geht (am besten auf Tastendruck zum nächsten Bild im aktuellen Verzeichnis wechseln und auf Tastendruck das Bild verlustfrei drehen und speichern). Hat jemand einen Tipp, mit welchem Tool das am besten geht?

EDIT: solved.

----------

## franzf

imagemagick + option "-auto-orient" schon versucht?

http://www.imagemagick.org/script/command-line-options.php?ImageMagick=trmk4ucarop6oc6usdstuubjc2#auto-orient

----------

## schachti

Noch nicht, aber laut Beschreibung ist das das gleiche, was auch exifautotran macht. Leider sind scheinbar viele Bilder dabei, bei denen die Kamera keinen entsprechenden Sensor hatte und die Orientierung nicht (oder nicht korrekt) gespeichert wurde.

----------

## franzf

Achso, ich hatte das so verstanden dass exifautotran einfach nicht zuverlässig arbeitet.

Wenn da keine Exifdaten über die Orientierung vorhanden sind, heißt das du musst dir die Bilder eh anschauen. Dann kannst du auch ein grafisches Tool nehmen.

Gwenview z.B. blendet beim überfahren eines Bildes Controls ein, mit denen man die Bilder drehen kann. Man kann ganz einfach nen ganzen Ordner bearbeiten und am Ende speichern (das clicken des Rotate-Buttons speichert das Bild noch nicht).

Einziges Problem: Gwenview dreht automatisch das Bild, wenn eine gültige Orientation in den EXIF-Daten steht. Heißt: Du siehst nicht ob das Bild schon richtig gedreht auf der Platte liegt oder nur von Gwenview so angezeigt wird...

----------

## toralf

Das neue digikam (1.x version) finde ich ganz nett - und "Ctrl+Left/Right Shift" macht's dann auch wie gewünscht.

----------

## schachti

ok, meine Erfahrungen:

- gwenview (kde-base/gwenview-4.4.0): Nach dem Drehen erscheint eine Leiste, in der steht, dass das Bild geändert wurde. Klicke ich dort auf speichern, passiert irgendwas und die Leiste verschwindet - die Datei auf der Festplatte wird aber nicht verändert, beim nächsten Öffnen der Datei habe ich wieder die ursprüngliche Ausrichtung.

- showfoto (media-gfx/digikam-1.1.0): Rotation ist nicht verlustlos, Bild wird neu kodiert --> Qualitätsverlust

- digikam: Buttons "rotieren" sowie Tastatur-Shortcuts sind scheinbar ohne Funktion, das Bild wird nicht geändert.

Lasse ich jpegtran -copy all -rotate 90 test.jpg > test2.jpg auf die Datei los, klappt alles wie erwartet.

----------

## mv

Du kannst einen Viewer wie beispielsweise pqiv benutzen: Dieser kann auf Tastendruck ein Script mit dem Bildnamen aufrufen; dort kannst Du dann die anscheinend zuverlässigen Tools aus jpeg aufrufen.

----------

## schachti

Danke, das schaue ich mir mal an!

----------

## schachti

Mit pqiv klappt das gut, danke für den Tipp!

Für alle, die vielleicht vor dem gleichem Problem stehen: Aufruf von pqiv mit

```

qiv -w -1 'rotate.sh left $1' -2 'rotate.sh right $1' VERZEICHNIS

```

bewirkt, dass in pqiv die Taste 1 das Bild nach links (90 Grad gegen den Uhrzeigersinn) und die Taste 2 das Bild nach rechts (90 Grad im Uhrzeigersinn) dreht; die Datei rotate.sh sieht wie folgt aus:

```

#!/bin/bash

if [[ $# -ne 2 ]]; then

  echo "usage: $0 (left | right) FILE" >&2

  exit 1

fi

if [[ ! -f "$2" ]]; then

  echo "file $2 does not exist" >&2

  exit 1

fi

case "$1" in

  left)

    rotate=270

    ;;

  right)

    rotate=90

    ;;

  *)

    echo "first parameter should be either 'left' or 'right'" >&2

    exit 1

    ;;

esac

tmpfile=$(mktemp) || { echo "$0: creation of temporary file failed!" >&2; exit 1; }

jpegtran -optimize -copy all -rotate "${rotate}" -outfile "${tmpfile}" "$2" || { echo "jpegtran failed!" >&2; rm -f "${tmpfile}"; exit 1; }

cp "${tmpfile}" "$2"

rm -f "${tmpfile}"

```

----------

