Inhalt
Intro
picresize wandelt alle Bilder die sich im Ordner befinden auf eine neue Grösse. Man gibt eine maximale Kantenlänge an in Pixel, die andere Kante wird automatisch proporzional angepasst. Die gewandelten Bilder landen in einem Unterordner.
z.b picresize 500 png
Mögliche Ausgang Formate: bmp, gif, jpeg, jpg, png
picresize
Die oberste Zeile darf beim Speichern in eine Datei, kein Leerzeichen am Anfang haben!
#!/bin/bash
# scriptname: picresize
#
# Installieren:
# chown root.root /usr/local/bin/picresize
# chmod 755 /usr/local/bin/picresize
#
# Benötigte Programme: imagemagick
# apt-get install imagemagick
vers="November 2012"
outputfolder="picresize_output_"`date --date= +%d_%m_%y`
if [ -z "$1" ]; then
cmd=help
else
pixel="$1"
cmd=doresize
fi
if [ "$1" == "help" ]; then
cmd=help
fi
if [ -z "$2" ]; then
format="png"
else
if [ "$2" = "bmp" ]||[ "$2" = "gif" ]||[ "$2" = "jpeg" ]||[ "$2" = "jpg" ]||[ "$2" = "png" ];then
format="$2"
else
cmd=formatfehler
fi
fi
case "$cmd" in
doresize)
count=0
countall=0
pwd0=`pwd`
mkdir -p "$outputfolder"/"$pixel"/"$format"
countall=`ls *.* | wc -l`
for file in *.*; do
if [ -d "$file" ]; then
echo
echo
echo -n Nichts zu tun für Ordner "$pwd0"/"$file";
echo
else
if [ -e "$file" ]; then
count=$[$count+1]
echo
echo Bearbeite "$count" von "$countall" Dateien: "$pwd0"/"$file"
output=`echo "$file" | sed s/\.[^\.]*$//`
convert "$file" -resize "$pixel"x"$pixel" "$outputfolder"/"$pixel"/"$format"/"$output"."$format"
echo -n " ""$count". gewandeltes Bild gespeichert in "$pwd0"/"$outputfolder"/"$pixel"/"$format"/"$output"."$format"
echo
fi
fi
done
;;
formatfehler)
echo
echo "Falsches Format angegeben"
echo
;;
help)
echo
echo " Hilfe zu picresize ""$vers"
echo "========================================================================="
echo " Wandelt alle Bilder die sich im aktuellen Ordner befinden zu einer neuen "
echo " Grösse."
echo
echo "picresize 400 jpg Wandelt Proporzional auf maximal 400pixel und als jpg"
echo "Ohne Format Angabe wird png verwendet."
echo
echo "Formate: bmp, gif, jpeg, jpg, png"
echo
;;
esac