Die Memoiren des Josh K. Phisher

Jetzt wieder mit Gratis-Kommentaren!

Bildkonvertierung für digitale Bilderrahmen

Posted by princo - 25.12.2009


Hier mal ein kleines Shell-Script, um Digitalphotos optimal für die Wiedergabe auf Fernsehern oder digitalen Bilderrahmen umzuwandeln.

Das Skript ist entstanden, weil moderne Multimediaboxen zwar auch hochaufgelöste Bilder wiedergeben können, aber bei großen Bilddateien doch merklich langsamer reagieren. Außerdem haben mich die Balken gestört, welche bei der Wiedergabe auf einem 16:9 Fernseher auftreten.

Außerdem werden bei mir die Fotos etwas zu dunkel wiedergegeben, und das läßt sich an meinem Fernseher nicht richtig kompensieren.

Das Skript sortiert zudem Bilder im Hochformat aus, weil die auf dem Fernseher einfach doof aussehen. Bei diesen neumodischen digitalen Bilderrahmen sieht das anders aus, deswegen erfahren diese Hochkant-Bilder im Script eine gesonderte Behandlung.

Die Originalbilder bleiben unverändert, es werden unterhalb des Arbeitsverzeichnisses die Verzeichnisse „hoch“ und „quer“ angelegt, wo die umgewandelten Bilder abgelegt werden. Die Exif-Daten bleiben erhalten.

Die gewünschte Auflösung wird in der Variablen „resolution“ definiert, ein paar gängige Auflösungen habe ich bereits eingetragen.

Die Bilder werden auf die gewünschte Auflösung verkleinert. Dabei werden überflüssige Seitenränder beschnitten, damit eine unverzerrtes Ergebnis erzielt werden kann. Die verkleinerten Bilder werden leicht nachgeschärft, was beim Verkleinern notwendig ist.

Die (standardmäßig auskommentierte) Variable „gamma“ regelt das Aufhellen/Abdunkeln der Bilder. Der vorgegebene Wert von „1.2“ ist bei mir optimal. Normalerweise bringen hier Werte zwischen 0.8 und 1.2 optimale Ergebnisse, aber das müßt ihr für euer Setup selbst herausfinden.

Die Zeile 29 kann ggfs. auskommentiert werden, wenn ihr einen Bilderrahmen mit integrierten Lagesensor habt. Sollten die Hochformat-Bilder auf dem Kopf stehen, müßt ihr dort den Wert von 90 zu 270 ändern.

#!/bin/bash

## Benötigt werden die Pakete imagemagick, libjpeg-progs und jhead
## ( sudo apt-get install imagemagick libjpeg-progs jhead )
## Stand 14.12.2009
## Entwickelt unter Ubuntu 9.10, Karmic Koala

#resolution="800x600" #Bilderrahmen
#resolution="1680x1050" #PC-Widescreen
#resolution="1280x720"
#resolution="1366x768" #HD-Ready
resolution="1920x1080" #Full-HD

#gamma="-level 0%,100%,1.2" #Helligkeitsanpassung, falls Bilder zu dunkel oder zu hell wiedergegeben werden.

mkdir "hoch" "quer"

PICS=$(ls -A . | grep -i jpg)

for i in ${PICS}
do
  convert "$i" -resize $resolution^ -gravity center -extent $resolution -unsharp 0x1 $gamma -auto-orient "/tmp/$i"
#  convert "$i" -resize $resolution^ -gravity center -extent $resolution -unsharp 0x1 $gamma -gravity northwest -pointsize 40 -fill white -undercolor '#00000080' -annotate +50+50 "Belichtung: %[exif:ExposureTime]\nBlende: %[exif:FNumber]\nISO: %[exif:ISOSpeedRatings]" "/tmp/$i"
  height=`identify -format "%h" "/tmp/$i"`
  width=`identify -format "%w" "/tmp/$i"`
  if [ $height -lt $width ] ; then
    mv "/tmp/$i" "quer/$i"
  else
    jhead -cmd "jpegtran -rot 90 &i > &o" "/tmp/$i" #Anpassung für Bilderrahmen ohne Lagesensor
    mv "/tmp/$i" "hoch/$i"
  fi
done

#Bilder umbenennen, damit die Sortierung bei der Mischung versch. Kameras stimmt
jhead -ft -n%Y%m%d-%H%M%S quer/*
jhead -ft -n%Y%m%d-%H%M%S hoch/*
Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

 
%d Bloggern gefällt das: