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