Contact us
Leave a message

Mitglied bei

Logo "Bündnis '90/Die Grünen"
B'90/Grüne, OV Lehrte
Logo "Gospelchor 'Swing Low', Markus-Gemeinde, Lehrte"
Gospelchor "Swing Low", Markus-Gemeinde, Lehrte
Logo "Verein zum Erhalt klassischer Computer"
Verein zum Erhalt klassischer Computer

Nachbearbeitung

Für die weitere Nutzung -- sei's im Web, sei's für Abzug -- sind 190 MB große TIFF-Dateien im ProPhoto-RGB-Farbraum eher unpraktisch; stattdessen müssen JPEGs im sRGB-Farbraum her. Für eine solche Massenumwandlung ist natürlich ImageMagick das Werkzeug der Wahl. Und außer der Dateiformat- und Farbraumkonvertierung vermag dieses unglaublich vielseitige Kommandozeilen-Tool auch noch allerhand andere nütliche Bildmanipulationen vornehmen -- zum Beispiel Level-Anpassungen.

Aber warum sollte man eine Anpassung der Schwarz- und Weißpunkt-Levels in Scans aus einem kalibrierten Scanner überhaupt benötigen? Ehrlich gesagt, weiß ich auch nicht warum, aber von verschiedenen Scan-Ausgabe-Dateien angefertigte Histogramme zeigen klar, dass die Scans offenbar nicht den gesamten verfügbaren Helligkeitsbereich ausschöpfen -- noch nicht mal das IT8-Target, welches ja eigentlich reines Schwarz und reines Weiß beinhalten sollte:

Kürbisse (USA) (Histogramm)
Kürbisse (USA) (Histogramm)
Fjord (Norwegen) (Histogramm)
Fjord (Norwegen) (Histogramm)
Truck (USA) (Histogramm)
Truck (USA) (Histogramm)
IT8-Target (Histogramm)
IT8-Target (Histogramm)
IT8-Target
IT8-Target
Truck (USA)
Truck (USA)
Kürbisse (USA)
Kürbisse (USA)
Fjord (Norwegen)
Fjord (Norwegen)

Offensichtlich werden die unteren ca. 4% und die oberen ca. 10% des verfügbaren Helligkeitsbereichs nicht genutzt -- weiß der Himmel, warum. Trotzdem ergeben sich bei einer Farbtiefe von 16 bit pro Kanal noch immer um die 56.000 mögliche Helligkeitswerte, was ungefähr dem 200fachen entspricht, was 8 bit möglich ist. Um jedoch bei der Konvertierung nach JPEG/sRGB von allen der mickerigen 256 8-Bit-Helligkeitswerten Gebrauch machen zu können, müssen der Schwarz- und Weißpunktlevel auf 4% resp. 90% gesetzt werden. Und das ist eine der Funktionen, die das folgende kleine Shell-Skript zur Verfügung stellt:

#!/bin/bash

blackpoint=4
adjustLevels=
profilePath=/usr/share/kde4/apps/libkdcraw/profiles/srgb-d65.icm
targetDir=.
quality=100
whitepoint=90

function printUsage() {
  cat << EOT
slidescan2jpeg - Post-process scanned slides
-----------------------------------------------------
Usage: slidescan2jpeg [OPTIONS] file {file...}
with possible options:
b <n>   : Blackpoint (in %) for -l. [$blackpoint]
l       : Adjust brightness level so that the the 
          values specified by -b and -w are mapped to
          pure black and white, respectively.
p <path>: Path to (probably: sRGB) color profile to
          be used in output images.
          [$profilePath]
q <n>   : JPEG compression quality; 0 means highest
          compression, which comes at the price of 
          worst image quality, while 100 implies best 
          image quality and worst compression rate. 
          [$quality]
t <dir> : Save converted images to <dir> rather than 
          the current directory.
w <n>   : Whitepoint (in %) for -l. [$whitepoint]
EOT
}

while getopts "b: l q: t: w:?" option; do
  case $option in
    b ) blackpoint=${OPTARG};;
    l ) adjustLevels=1;;
    t ) targetDir=${OPTARG};;
    q ) quality=${OPTARG};;
    w ) whitepoint=${OPTARG};;
    \?) printUsage
        exit 0;;
    * ) printUsage
        exit 1;;
  esac
done

shift $((OPTIND-1))
OPTIND=1

if [[ $# -eq 0 ]]; then printUsage; exit 1; fi

level=
if [ $adjustLevels ]; then
  level="-level $blackpoint%,$whitepoint%"
fi

for file in $@; do
  echo Processing $file...
  name=$(basename $file .tif)
  convert "$file" -delete 1 $level -profile "$profilePath" -depth 8 -quality $quality "$targetDir/$name.jpg"
done

Und hier die Ergebnisse der JPEG-Konvertierung mit und ohne Level-Anpassung:

Kürbisse (USA), keine Level-Anpassung
Kürbisse (USA), keine Level-Anpassung
Fjord (Norwegen), keine Level-Anpassung
Fjord (Norwegen), keine Level-Anpassung
Truck (USA), keine Level-Anpassung
Truck (USA), keine Level-Anpassung
Kürbisse (USA), mit Level-Anpassung
Kürbisse (USA), mit Level-Anpassung
Fjord (Norwegen), mit Level-Anpassung
Fjord (Norwegen), mit Level-Anpassung
Truck (USA), mit Level-Anpassung
Truck (USA), mit Level-Anpassung