B
benze
Grünschnabel
Hallo,
ich habe leider wenig Ahnung vom Programmieren auf der bash. Mit Hilfe dieses Forums und anderer Schnipsel habe ich mir ein Script zusammengebaut, das die in einem Verzeichnis enthaltenen Bilder verkleinert und mit einem Wasserzeichen versieht.
Da ich aber oft mehrere Verzeichnisse habe, in denen Bilder liegen und ich nicht in jedes Verzeichnis das Script kopieren und aufrufen möchte, suche ich nach einer Möglichkeit, so dass das Script aus einem übergeordneten Verzeichnis aufgerufen werden kann und in jedem Verzeichnis die Konvertierung/Wasserzeichen Benennung vornimmt.
Kann mir jemand helfen oder vielleicht einen Tipp geben, wo ich weitere Hinweise finden kann ???
Vielen Dank für Eure Hilfe und Hinweise.
--------------------------------------------
#! /bin/bash
# Wasserzeichen erzeugen
convert -size 400x40 xc:grey30 -font Arial -pointsize 20 -gravity center -draw "fill grey70 text 0,0 'Copyright Christian Benze'" stamp_fgnd.png
convert -size 400x40 xc:black -font Arial -pointsize 20 -gravity center -draw "fill white text 1,1 'Copyright Christian Benze' text 0,0 'Copyright Christian Benze' fill black text -1,-1 'Copyright'" +matte stamp_mask.png
composite -compose CopyOpacity stamp_mask.png stamp_fgnd.png stamp.png
mogrify -trim +repage stamp.png
#Liste der zu bearbeitenden Dateien erstellen
ls *.jpg >liste
bild=""
while read x
do
bild="$x"
echo $bild
identify -format "%w" $bild >breite
{
read line1
} <breite
#Bildpixel Quer- oder Hochformat
test=2850
if [ $line1 -lt $test ]
then
#echo Hochformat
convert -resize 426x640! -density 72 -quality 50 $bild $bild
#convert -pointsize 20 -gravity SouthEast -fill orange -draw "text 30,10 '(c) Christian Benze'" -fill orange -draw "text 20,-18 ''" $bild $bild
#Wasserzeichen einfuegen
composite -watermark 99% -gravity north stamp.png $bild $bild
composite -watermark 99% -gravity center stamp.png $bild $bild
composite -watermark 99% -gravity south stamp.png $bild $bild
#mv $bild /home/software/www.bilder.hoch
else
#echo Querformat
convert -resize 640x426! -density 72 -quality 50 $bild $bild
#convert -pointsize 20 -gravity SouthEast -fill orange -draw "text 30,10 '(c) Christian Benze'" -fill orange -draw "text 20,-18 ''" $bild $bild
#Wasserzeichen einfuegen
composite -watermark 99% -gravity north stamp.png $bild $bild
composite -watermark 99% -gravity center stamp.png $bild $bild
composite -watermark 99% -gravity south stamp.png $bild $bild
#mv $bild /home/software/www.bilder.quer
fi
done < liste
rm liste
rm breite
rm stamp.png
rm stamp_mask.png
rm stamp_fgnd.png
echo Fertig ...
ich habe leider wenig Ahnung vom Programmieren auf der bash. Mit Hilfe dieses Forums und anderer Schnipsel habe ich mir ein Script zusammengebaut, das die in einem Verzeichnis enthaltenen Bilder verkleinert und mit einem Wasserzeichen versieht.
Da ich aber oft mehrere Verzeichnisse habe, in denen Bilder liegen und ich nicht in jedes Verzeichnis das Script kopieren und aufrufen möchte, suche ich nach einer Möglichkeit, so dass das Script aus einem übergeordneten Verzeichnis aufgerufen werden kann und in jedem Verzeichnis die Konvertierung/Wasserzeichen Benennung vornimmt.
Kann mir jemand helfen oder vielleicht einen Tipp geben, wo ich weitere Hinweise finden kann ???
Vielen Dank für Eure Hilfe und Hinweise.
--------------------------------------------
#! /bin/bash
# Wasserzeichen erzeugen
convert -size 400x40 xc:grey30 -font Arial -pointsize 20 -gravity center -draw "fill grey70 text 0,0 'Copyright Christian Benze'" stamp_fgnd.png
convert -size 400x40 xc:black -font Arial -pointsize 20 -gravity center -draw "fill white text 1,1 'Copyright Christian Benze' text 0,0 'Copyright Christian Benze' fill black text -1,-1 'Copyright'" +matte stamp_mask.png
composite -compose CopyOpacity stamp_mask.png stamp_fgnd.png stamp.png
mogrify -trim +repage stamp.png
#Liste der zu bearbeitenden Dateien erstellen
ls *.jpg >liste
bild=""
while read x
do
bild="$x"
echo $bild
identify -format "%w" $bild >breite
{
read line1
} <breite
#Bildpixel Quer- oder Hochformat
test=2850
if [ $line1 -lt $test ]
then
#echo Hochformat
convert -resize 426x640! -density 72 -quality 50 $bild $bild
#convert -pointsize 20 -gravity SouthEast -fill orange -draw "text 30,10 '(c) Christian Benze'" -fill orange -draw "text 20,-18 ''" $bild $bild
#Wasserzeichen einfuegen
composite -watermark 99% -gravity north stamp.png $bild $bild
composite -watermark 99% -gravity center stamp.png $bild $bild
composite -watermark 99% -gravity south stamp.png $bild $bild
#mv $bild /home/software/www.bilder.hoch
else
#echo Querformat
convert -resize 640x426! -density 72 -quality 50 $bild $bild
#convert -pointsize 20 -gravity SouthEast -fill orange -draw "text 30,10 '(c) Christian Benze'" -fill orange -draw "text 20,-18 ''" $bild $bild
#Wasserzeichen einfuegen
composite -watermark 99% -gravity north stamp.png $bild $bild
composite -watermark 99% -gravity center stamp.png $bild $bild
composite -watermark 99% -gravity south stamp.png $bild $bild
#mv $bild /home/software/www.bilder.quer
fi
done < liste
rm liste
rm breite
rm stamp.png
rm stamp_mask.png
rm stamp_fgnd.png
echo Fertig ...
Zuletzt bearbeitet: