ich nutze ein Script aus dem linux-forum, um Fotos zu skalieren.
Code: Alles auswählen
#!/bin/bash
# Script sucht alle auf ".jpg" endende Dateien im aktuellem Verzeichnis und konvertiert sie in 16 zu 9 Format.
# hier wird das Ausgabeverzeichnis festgelegt, Verzeichnis muss existieren
OUTDIR="/home/user/export/"
#--------------------------------- Ende Konfiguration ----------------------------
typeset -i BREIT ORIENT HOCH SOLLHOCH DIFF_CUT
#Hauptschleife
for BILDFILE in *.jpg
do
echo $BILDFILE
BILDNAME=$(basename "$BILDFILE" ".jpg")
FORMAT=$(identify -format '%w;%h;%[exif:orientation]' "$BILDFILE")
BREIT=$(echo "$FORMAT" | cut -d";" -f1)
HOCH=$(echo "$FORMAT" | cut -d";" -f2)
ORIENT=$(echo "$FORMAT" | cut -d";" -f3)
WINKEL=0
if [ $ORIENT -eq 1 ]
then
# BILD ist Breitformat
# wir schneiden oben und unten etwas weg
SOLLHOCH=$BREIT*9/16
DIFF_CUT=($HOCH-$SOLLHOCH)/2
convert "$BILDFILE" -crop "$BREIT"x"$SOLLHOCH"+0+"$DIFF_CUT" +repage -resize '1920!x1080!' -quality 99 "$OUTDIR"/"$BILDNAME".jpg
else
# BILD ist nicht Breitformat oder gedreht,gespiegelt oder sonstiges
# wir drehen nur und passen die Bildgroesse an
# folgende Verzweigung der Orientation muss noch sauber angepasst werden
# siehe auch http://www.imagemagick.org/Usage/photos/#orient
case $ORIENT in
5) WINKEL="-90" ;;
6) WINKEL="90" ;;
esac
convert "$BILDFILE" -rotate "$WINKEL" -resize '1920x1080' -quality 99 -orient TopLeft "$OUTDIR"/"$BILDNAME".jpg
fi
done
Code: Alles auswählen
scalierung.sh: 9: typeset: not found
scalierung.sh: 26: Syntax error: "(" unexpected (expecting "fi")
Vielen Dank schon mal.