Autor : Christopher Pope
Beschreibung : Skript durchläuft einen Ordner und konvertiert die Bilddateien in einen anderen
Ordner mithilfe vom imagemagick die Bilder werden automatisch durchnummeriert
Wie benutzt man das Skript ?
Es gibt 2 Möglichkeiten dieses Skript zu verwenden
1.) starten durch ./piccop.sh sämtliche benötigte Informationen werden im Terminal abgefragt
2.) starten über Parameter
piccop.sh [Startverzeichnis] [Zielverzeichnis] [StartZähler oder a] [Auflösung] [löschen 0/1]
z.B.
piccop.sh /home/user/bilder/wallpaper/ /home/user/bilder/wallies 1 1024x768^ 1
wird als StartZähler a als Parameter übergeben wird die höchste Zahl im Zielverzeichnis ermittel +1 addiert
und als Start Zähler verwendet.
Bei Auflösung können auch die convert -resize Befehle verwendet werden mehr dazu unter :
http://www.imagemagick.org/Usage/resize/#resize
Danke an :
Greebo , paddel , Barabbas , theinlein , Vain , user unknown von ubuntuusers.de für ihre Tipps und Hilfestellungen
Download :
Download piccop.sh
#!/bin/bash
#
# Autor : Christopher Pope
# Beschreibung : Skript durchläuft einen Ordner und konvertiert die Bilddateien in einen anderen
# Ordner mithilfe vom imagemagick die Bilder werden automatisch durchnummeriert
#
# Wie benutzt man das Skript ?
#
# Es gibt 2 Möglichkeiten dieses Skript zu verwenden
#
# 1.) starten durch ./piccop.sh sämtliche benötigte Informationen werden im Terminal abgefragt
#
# 2.) starten über Parameter
# piccop.sh [Startverzeichnis] [Zielverzeichnis] [StartZähler oder a] [Auflösung] [löschen 0/1]
# z.B.
# piccop.sh /home/user/bilder/wallpaper/ /home/user/bilder/wallies 1 1024x768^ 1
#
# wird als StartZähler a als Parameter übergeben wird die höchste Zahl im Zielverzeichnis ermittel +1 addiert
# und als Start Zähler verwendet.
#
# Bei Auflösung können auch die convert -resize Befehle verwendet werden mehr dazu unter : http://www.imagemagick.org/Usage/resize/#resize
#
# Danke an :
# Greebo , paddel , Barabbas , theinlein , Vain , user unknown von ubuntuusers.de für ihre Tipps und Hilfestellungen
#
blue=$(tput setaf 4) # Blue
green=$(tput setaf 2) # Green
red=$(tput setaf 1) # Red
bold=$(tput bold) # bold
white=$(tput sgr0) # Text Reset auf Default
u=0
clear
echo
if [[ ${#} -lt 1 ]]
then
echo "Bitte Startverzeichnis angeben (muss mit / aufhören !)"
read inp
source=$inp
else
source=$1
fi
if [[ ${#} -lt 2 ]]
then
echo -e "Bitte Zielverzeichnis angeben (muss mit / aufhören !)"
read inp1
target=$inp1
else
target=$2
fi
if [[ ${#} -lt 3 ]]
then
echo -e "Bitte Start Zähler angeben"
read inp2
startn=$inp2
else
startn=$3
if [[ "$startn" == "a" ]]; then
hz=$(ls $target -a1 | tail -n 1 | grep -o [1-9][0-9]*)
hz=$(($hz+1))
#echo $hz
startn=$hz
fi
fi
if [[ ${#} -lt 4 ]]
then
echo
echo -e "Wie groß sollen denn die Bilder nach dem konvertieren sein ?\n"
echo -e "1024x768 (default)\t\t1"
echo -e "1280x1024\t\t\t2"
echo -e "1600x1200\t\t\t3"
read -n 1 taste
case $taste in
1) res=1024x768^;;
2) res=1280x1024^;;
3) res=1600x1200^;;
esac
else
res=$4
fi
if [[ ${#} -lt 5 ]]
then
echo
echo -e "Soll die Datei nach dem konvertieren gelöscht werden ?"
echo -e "Ja\t\tj"
echo -e "Nein\t\tn"
read -n 1 taste
case $taste in
j|J) delete=1;;
n|N) delete=0;;
esac
else
delete=$5
fi
# Zähler setzen
j=$startn
echo
echo ${white}"Vorgang wird gestartet"
echo "------------------------------------------------------------------------------------------------------------------------------"
echo " ${white}Quelle : ${bold}${red}$source"
echo " ${white}Ziel : ${bold}${green}$target"
echo " ${white}Start Zähler : ${bold}${blue}$startn"
echo " ${white}Ziel Auflösung : ${bold}${blue}$res ${white}"
echo " ${white}Löschen nach konvertieren : ${bold}${red}$delete ${white}"
echo "------------------------------------------------------------------------------------------------------------------------------"
echo
if (test -d $source); then
if (test -d $target); then
for file in $(find $source -type f | sort); do
echo ${white}${bold}${blue}$file ${white} \-\-\-\> ${bold}${green}$target$(printf "%04u\n" "$j").jpg
convert $file -resize $res $target$(printf "%04u\n" "$j").jpg
if [[ $delete = 1 ]]
then
echo "${red}$file ${white} wird gelöscht"
rm $file
fi
j=$(($j+1))
u=$(($u+1))
done
echo
echo "${white}------------------------------------------------------------------------------------------------------------------------------"
j=$(($j-1))
echo "${white} Vorgang wurde abgeschlossen , es wurden ${bold}${green}$u ${white}Dateien konvertiert"
echo
else
echo
echo "${white}------------------------------------------------------------------------------------------------------------------------------"
echo "${white}Ziel : ${bold}${red}$target ${white} wurde nicht gefunden"
fi
else
echo
echo "${white}------------------------------------------------------------------------------------------------------------------------------"
echo "${white}Quelle : ${bold}${red}$source ${white} wurde nicht gefunden"
fi
echo
exit 1