Posts Tagged “jpg”

Folgendes 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

Comments 1 Kommentar »

Ich stehe des Öfteren vor dem Problem, dass ich mehrere Dateien auf einmal umbenennen möchte. Da dies, per Hand zu machen, viel Zeit kostet (und langweilig ist), habe ich dafür ein kleines Script geschrieben.

for i in *.tgz; do mv “$i” “${i/.tgz}”.tar.gz; done    # Achtung: “” sind die normalen Anführungszeichen, die WordPress verunstaltet

Der oben stehende Befehl benennt dabei alle Dateien, die die Endung .tgz haben, in .tar.gz um. Dabei schneidet “${i/.tgz}” den Text nach dem Schrägstrich ab und dafür wird .tar.gz angehängt. Die Anführungszeichen sind wichtig, falls Leerzeichen im Dateiname sind.

for i in *.jpg; do convert $i ${i%.*}.png; done    # Achtung: “” sind die normalen Anführungszeichen, die WordPress verunstaltet

Ähnlich arbeitet auch oben stehender Befehl, der alle Bilder im Ordner vom Typ JPG in den Typ PNG umwandelt.

for i in *part1.rar; do unrar e -pPASSWORD “$i” ; done    # Achtung: “” sind die normalen Anführungszeichen, die WordPress verunstaltet

Der letzte Anwendungsfall ist das Entpacken von vielen RAR Dateien, wie es häufig bei Serien vorkommt, die man aus dem Internet bezieht. Hierbei sei darauf hingewiesen, dass ich hier keine Anleitung für das leichtere Entpacken von illegalen Inhalten geben möchte, sondern, dass mein Befehl ausschließlich für legale Inhalte verwendet werden soll. Der Befehl entpackt somit alle Dateien, die auf part1.rar enden. Unrar entpackt automatisch auch alle dazu gehörigen Dateien. Auf diese kann eine gesamte Staffel ohne weiteres Eingreifen entpackt werden.

Comments 1 Kommentar »

219243 Seiten angezeigt, 751 heute
92067 Besuche, 181 heute
FireStats icon Powered by FireStats