Bilder automatisch rotieren und umbenennen
Geschrieben von cartmen in Linux, tags: automatisch, datum, event, exif, exiftran, foto, jpeg, jpg, kamera, nummerieren, ordner, png, rotieren, scriptFolgendes Script dient dazu etwas mehr Ordnung in die Fotosammlung zu bringen. Dazu nutzt es die EXIF Information Kameraausrichtung um die Bilder korrekt zu drehen und das Aufnahmedatum um dieses in den Dateinamen einzutragen. Dem Script wird dann noch übergeben, ob man die Originaldateien behalten möchte und welche Veranstaltung auf den Fotos ist.
Um das Script zu verwenden müssen die Programme exif und exiftran installiert sein und das Script im Ordner der Fotos liegen.
Achtung: Das Script dreht die Originalbilder immer, auch wenn ihr “keep” als Parameter verwendet habt.
#!/bin/bash # Script fuer das automatische Drehen von Fotos sowie # Hinzufuegen von Event und Datum # Das Script muss im Ordner der Fotos liegen # Benötigte Programme: exif, exiftran # geschrieben von Kai Fitzer am 08.Juni 2011 # Paramater: # 1 - Originale behalten ja/nein # 2 - Event # 3 - Dateiendung # Dateiname: FotoNr_Event_Datum.Dateiendung if [ -z "$1" ] then echo "Usage: ./picture.sh {keep|delete} eventname fileextension" echo "Please choose if you want to delete or keep original files as first parameter" exit 1 else if [ "$1" = "keep" ] then CMD="cp" elif [ "$1" = "delete" ] then CMD="mv" else if [ -z "$2" ] then echo "Usage: ./picture.sh {keep|delete} eventname fileextension" echo "Please give me an event name as second parameter" exit 1 else if [ -z "$3" ] then echo "Usage: ./picture.sh {keep|delete} eventname fileextension" echo "Please give me a file extension as third parameter" exit 1 fi fi fi fi ID=1 for i in *.$3 ; do if [ "$ID" -lt 10 ] then LONGID="000"$ID elif [ "$ID" -lt 100 ] then LONGID="00"$ID elif [ "$ID" -lt 1000 ] then LONGID="0"$ID fi ; exiftran -ia $i ; DATE=$(exif $i --ifd 0 --tag 0x0132 | grep Value | cut -c 10-19 | tr ':' - ) ; $($CMD $i $LONGID"_"$2"_"$DATE"."$3) ; ID=`expr $ID + 1`; done exit 0
Ein typischer Aufruf sieht so aus:
./picture.sh delete "Party_bei_XYZ" JPG
Dieser Befehl wird alle JPG (Groß- und Kleinschreibung beachten) Dateien anpassen, wobei die Originaldateien verändert werden und dann wie folgt heißen:
- 0001_Party_bei_XYZ_2011-02-13.JPG
- 0002_Party_bei_XYZ_2011-02-13.JPG
- 0003_Party_bei_XYZ_2011-02-13.JPG
- …
- 0361_Party_bei_XYZ_2011-02-14.JPG
Einträge (RSS)
Habe das Script noch einmal leicht angepasst und “tr ‘:’ -” hinzugefügt, was bewirkt, dass die Doppelpunkte im Datum durch Bindestriche ersetzt werden, da Windows keine Doppelpunkte in Dateinamen erlaubt.