NoPaste

knechts skript

von Anonymous

SNIPPET_TEXT:
  1. #!/bin/sh
  2. ####################################
  3. # Autor: Sebastian MÌller
  4. # EMail: human_waste@gmx.de
  5. # WWW: https://knecht.homelinux.net
  6. # Datum: 11.01.2005
  7. # Zweck: Konvertieren aller JPG Bilder eines Ordners auf eine bestimme maximale KantenlÀnge in Pixeln,
  8. #        Ausgabe der fertigen Dateien im Unterordner output/ im Quellverzeichnisses
  9. # Syntax: jpegkonv Quellordner
  10. # Version: 1.0
  11. # AbhÀngigkeiten: Packet ImageMagick und libmagick6 mÌßen installiert sein
  12. ####################################
  13.  
  14. #Parameter ÌberprÌfen
  15. if [ "$1" = "" ] ; then
  16.         echo
  17.         echo "Falsche Eingabe:"
  18.         echo "jpegkonv [Quellordner] "
  19.  
  20.         echo
  21.         exit 0
  22. fi
  23.  
  24. which mogrify &> /dev/null
  25. if [ "$?" = "1" ] ; then
  26. echo
  27. echo "Nötige Software zum resizen von Bildern wurde nicht gefunden: "
  28. echo "Bitte ÌberprÌfen Sie ob die Packete IMAGEMAGICK und LIBMAGICK6 installiert sind. "
  29. echo
  30. exit 0
  31. fi
  32.  
  33. #Existiert Ordner und sind JPEG Dateien darin
  34. ls $1 &> /dev/null
  35. if [ "$?" = "1" ] ; then
  36.         echo
  37.         echo "Falsche Eingabe:"
  38.         echo "Der Ordner $1 existiert nicht !"
  39.         echo
  40.         exit 0
  41. fi
  42.  
  43. inhalt=$(ls -1 $1)
  44.  
  45. if [ "$(echo "$inhalt" | grep jpg)" != "" ]; then
  46.         format=jpg
  47. elif [ "$(echo "$inhalt" | grep JPG)" != "" ]; then
  48.         format=JPG
  49. elif [ "$(echo "$inhalt" | grep jpeg)" != "" ]; then
  50.         format=jpeg
  51. elif [ "$(echo "$inhalt" | grep JPEG)" != "" ]; then
  52.         format=JPEG
  53. else
  54.         echo
  55.         echo "Es befinden sich keine JPG Dateien im angegebenen Ordner !!"
  56.         echo
  57.         exit 0
  58. fi
  59.  
  60.  
  61. #Output Ordner anlegen unter $1/output
  62.         echo
  63.         echo "Lege Ordner $1 fÌr Ausgabedateien an:"
  64.         ls $1/output &> /dev/null
  65.  
  66. if [ "$?" = "0" ] ; then
  67.         echo "Verzeichniss existiert bereits, vorhandene Dateien in $1/output werden Ìberschrieben !!"
  68.         ans=a
  69.   while [ "$ans" != "ja" -a "$ans" != "nein" ] ; do
  70.         echo -n "Wollen sie das ? (ja/nein) "
  71.         read ans
  72.         echo
  73.   done
  74.  
  75.   if [ "$ans" = "nein" ] ; then
  76.         echo "Auf ihren Wunsch hin abgebrochen"
  77.         echo
  78.         exit 0
  79.   fi
  80.  
  81. else
  82.         mkdir $1/output &> /dev/null
  83.   if [ "$?" = "1" ] ; then
  84.         echo
  85.         echo "Erstellen von Ordner $1/output nicht möglich"
  86.         echo "ÜberprÌfen sie die Berechtigungen"
  87.         echo
  88.         exit 0
  89.   fi
  90. fi
  91.  
  92. #Report des Sucherfolges
  93. echo "$inhalt" | grep "$format" > $1/output/dateiliste
  94. anzahl=$(wc -l "$1/output/dateiliste" | cut -d" " -f1)
  95. inhalt=$(cat $1/output/dateiliste)
  96. rm $1/output/dateiliste &> /dev/null
  97. echo $anzahl Dateien des Formats $format gefunden !
  98.  
  99. #Beginn der Arbeit an den JPG Dateien
  100. run=0
  101. while [ "$run" != "1" ] ; do
  102.         echo -n "Auf welche Auslösung konvertieren (lÀngste Kante in Pixel angeben)? (z.B. 400) "
  103.         read res
  104.         if (echo "$res" | grep "^[0-9]\{3\}$"&>/dev/null) ; then
  105.                 run=1
  106.         elif (echo "$res" | grep "^[0-9]\{2\}$"$>/dev/null); then
  107.                 run=1
  108.         elif (echo "$res" | grep "^[0-9]\{4\}$"$>/dev/null); then
  109.                 run=1
  110.         fi
  111. done
  112. echo "Konvertiere Bilder auf maximale KantenlÀnge von $res Pixeln"
  113. echo
  114. res=$res\x$res
  115. echo
  116. echo $res
  117. echo
  118.         cp $1/*.$format $1/output/
  119. for  n in $inhalt  ; do
  120.         echo -n "Bearbeite Datei $n "
  121.         echo -n ". . . "
  122.         mogrify -size $res -resize $res  $1/output/$n
  123.         echo "done"
  124. done
  125.  
  126. echo

Quellcode

Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. PASTEBIN_DOWNLOAD_SNIPPET_EXPLAIN