photourist
Themenersteller
Vollautomatische RAW-Konvertierung
mit Ufraw, ImageMagick und ExifTool
Man kommt mit 1001 RAW-Dateien aus dem Urlaub zurück. Man möchte schnell Ergebnisse sehen, die qualitätsmäßig mehr bieten als die in die Rohdateien eingebetteten JPEG-Vorschauen. Man möchte eine bequeme Basis haben, um bei Optimierungen einzelner Bilder im Konverter nicht bei Null anfangen zu müssen.
Da bietet sich doch ein skriptbasierter, vollautomatischer RAW-Workflow an, welcher die Bilder linear konvertiert, leicht entrauscht, ganz dezent vorschärft und als EXIF-JPEGs ausgibt.
Ufraw ( http://ufraw.sourceforge.net/ ), ImageMagick ( http://www.imagemagick.org/script/index.php ) und ExifTool ( http://www.sno.phy.queensu.ca/~phil/exiftool/ ) sind wie geschaffen für diese Aufgabe.
Ufraw lässt sich mit grafischer Oberfläche sowohl stand-alone (ufraw) als auch als GIMP-Plugin (ufraw-gimp) nutzen. Eine dritte Möglichkeit bietet die Ausführung ohne interaktive Oberfläche im Batchmodus (ufraw-batch). Die pro Bild ausgegebenen ID-Files enthalten alle für die Konvertierung notwendigen Daten. Zur erneuten Konvertierung eines Bildes ist nur das jeweilige ID-File (*.ufraw) mit ufraw aufzurufen.
Das folgende Skript (my_workflow) läuft unter der BourneAgainShell (bash) unter Linux, BSD und anderes Unix-Abarten. Unter Windows muss es für WSH angepasst werden oder in einer CygWin-Umgebung ( http://www.cygwin.com/ ) ausgeführt werden.
Das Skript soll zeigen, was auf der Kommandozeile möglich ist und als Anregung zu eigenen Versuchen dienen. Sicherlich lässt sich einiges verbessern oder einfach anders machen.
Viel Spaß beim Experimentieren!
Skript: my_workflow
mit Ufraw, ImageMagick und ExifTool
Man kommt mit 1001 RAW-Dateien aus dem Urlaub zurück. Man möchte schnell Ergebnisse sehen, die qualitätsmäßig mehr bieten als die in die Rohdateien eingebetteten JPEG-Vorschauen. Man möchte eine bequeme Basis haben, um bei Optimierungen einzelner Bilder im Konverter nicht bei Null anfangen zu müssen.
Da bietet sich doch ein skriptbasierter, vollautomatischer RAW-Workflow an, welcher die Bilder linear konvertiert, leicht entrauscht, ganz dezent vorschärft und als EXIF-JPEGs ausgibt.
Ufraw ( http://ufraw.sourceforge.net/ ), ImageMagick ( http://www.imagemagick.org/script/index.php ) und ExifTool ( http://www.sno.phy.queensu.ca/~phil/exiftool/ ) sind wie geschaffen für diese Aufgabe.
Ufraw lässt sich mit grafischer Oberfläche sowohl stand-alone (ufraw) als auch als GIMP-Plugin (ufraw-gimp) nutzen. Eine dritte Möglichkeit bietet die Ausführung ohne interaktive Oberfläche im Batchmodus (ufraw-batch). Die pro Bild ausgegebenen ID-Files enthalten alle für die Konvertierung notwendigen Daten. Zur erneuten Konvertierung eines Bildes ist nur das jeweilige ID-File (*.ufraw) mit ufraw aufzurufen.
Das folgende Skript (my_workflow) läuft unter der BourneAgainShell (bash) unter Linux, BSD und anderes Unix-Abarten. Unter Windows muss es für WSH angepasst werden oder in einer CygWin-Umgebung ( http://www.cygwin.com/ ) ausgeführt werden.
Das Skript soll zeigen, was auf der Kommandozeile möglich ist und als Anregung zu eigenen Versuchen dienen. Sicherlich lässt sich einiges verbessern oder einfach anders machen.
Viel Spaß beim Experimentieren!
Skript: my_workflow
Code:
#!/bin/bash
#
# Automated RAW workflow using dcraw, ImageMagick and ExifTool
# tested with ufraw 0.9.1, ImageMagick 6.2.8 and ExifTool (Nov. 12/03)
#
# Schutz vor unbeabsichtigtem Zweitlauf abfragen
if [ -e workflow_done ]; then
echo "my_workflow has already been run. Nothing to be done."
echo "Press <RETURN> to exit."
read some_key && exit 1
fi
start_time=`date +%R`
# RAW-Dateien zählen
all_files="`ls *.ORF | wc -w`"
echo "Starting RAW workflow by photourist"
echo " $all_files files to be processed."
echo
count_files=1
echo "Step 1 of 3: starting RAW-conversion"
echo "--------------------------------------"
for i in *.ORF; do
echo "processing ORF-file $count_files / $all_files"
# Lineare Konvertierung mit ufraw-batch. Ausgabe nach 16-Bit-PPM und der ID-Files
ufraw-batch \
--wb=camera \
--base-curve=linear \
--curve=linear \
--clip \
--gamma=0.45 \
--linearity=0.10 \
--saturation=1.2 \
--exposure=auto \
--black-point=auto \
--interpolation=ahd \
--out-type=ppm16 \
--create-id=also \
$i
let count_files=( $count_files + 1)
done
echo " done."
echo
echo "Step 2 of 3: starting PPM-processing"
echo "--------------------------------------"
count_files=1
for i in *.ppm; do
echo "processing PPM-file $count_files / $all_files"
# Leichte Entrauschung durch Gauss-Filter und USM. Umwandlung nach JPEG.
convert $i \
-gaussian 1x1 \
-unsharp 2x1.4+1+0.02 \
-quality 97 \
`basename $i .ppm`.jpg
let count_files=( $count_files + 1)
done
echo
echo "Tidying up ..."
# Löschen der PPM-Dateien.
rm -f *.ppm
echo " done."
echo
echo "Step 3 of 3: transferring EXIF data"
echo "--------------------------------------"
count_files=1
for orffile in `ls *.ORF`; do
echo "processing $count_files / $all_files"
jpgfile=`basename $orffile .ORF`.jpg
# Übertragung der EXIF-Daten von den ORF- auf die JPEG-Dateien.
exiftool -TagsFromFile $orffile -x Orientation $jpgfile
sleep 2
let count_files=( $count_files + 1)
done
echo
echo "Tidying up ..."
# Ordner für JPEG-Dateien ohne EXIFs.
mkdir JPG_backup
# Ordner für JPEG-Dateien mit EXIFs.
mkdir JPG
mv -f *.jpg_original JPG_backup/
mv -f *.jpg JPG/
# Schutz vor unbeabsichtigtem Zweitlauf setzen.
touch workflow_done
echo " done."
echo
echo "Workflow finished."
echo "Duration from $start_time to `date +%R`"
echo "--------------------------------------"
# Ende des Skripts.