Bildbearbeitung
Inhaltsverzeichnis
Bildbearbeitung
Beim erstellen kleiner Videosequenzen bzw. animierten gifs bin ich einmal über die sehr hilfreiche Tools imagemagick gestolpert. Ich benutze die Tools seitdem für unterschiedliche Massenverarbeitungen im Zusammenhang mit unterschiedlichen Bildformaten.
animiertes .gif aus mehreren .jpgs erstellen
- In den Ordner der Bilder wechseln
$ cd ~/Bilder
Mit dem Tool convert können mehrere Bilder eines Formates zusammengefügt werden mit dementsprechendem output:
$ convert -delay 20 -loop 1 *.jpg ~/animiertes_Bild.gif
Zur Erklärung -delay für die Zeitspanne zwischen den Bildern in Millisekunden, -loop 1 führt dazu das das gif ein immer wieder von vorne anfängt, *.jpg -> alle jpeg Dateien und das Ziel
Bilder in verschiedenen Formaten konvertieren
convert <input-file> [optionen] output-file
Beispiel:
convert *.png *.jpg
Größe von Bilder ändern
convert quelle.jpg -resize 1024x768 ziel.jpg
automatische Rotation
Sehr genial finde ich die Funktionalität einer automatischen Rotierung der Fotos. Viele Kameras speichern als Metadaten diese Information mit ab. Diese kann man sich auslesen lassen und mit convert automatisch richtig drehen lassen. Abhängig ist dies von der Version von ImageMagick und ob die Informationen im Bildheader überhaupt gespeichert wurde. Beides kann man testen: ImageMagick Version:
# convert -list Orientation
Falls hier folgende Ausgabe erscheint ist die ImageMagick Version hoch genug:
TopLeft TopRight BottomRight BottomLeft LeftTop RightTop RightBottom LeftBottom
Bildheader:
identify -format '%[exif:orientation]' bildname.jpg
Bei output einer 1 ist die Information im Header enthalten.
Ich lasse mir nun ein Bild auf 1024x768 Größe + richtige Ausrichtung konvertieren:
convert quelle.jpg -resize 1024x768 -auto-orient ziel.jpg
Das ganze noch in einer schönen for Anweisung um es auf viele Bilder anzuwenden mit verschieben in einen Unterordner "small" und einem output:
count=0
mkdir small # for f in *.jpg for f in *.JPG do #erstmal machen wir das bild kleiner und kopieren es nach small/ convert $f -resize 1024x768 -auto-orient small/$f #ein zähler ist immer gut count=`expr $count + 1` echo "Bild $count verkleinert und in small/ kopiert" done