Hallo allerseits,
ich möchte per Script in einem Verzeichnis alle jpg's mit runden transparenten Ecken versehen und im png Format speichern. Wenn mir die Größe des Bildes bekannt ist kann ich das mit dieser Kommandozeile tun: in diesem Falle hat das Bild eine Größe von 600x401 Pixeln und heißt einfach nur bild.jpg
convert -size 600x401 xc:none -fill black -draw "roundRectangle 0,0 600,401, 15,15" bild.jpg -compose SrcIn -composite bild.png
Nun dachte ich mir das in ein Script zu packen welches dann so aussieht
#!/bin/bash for i in *.jpg; do echo "processing $i ..." # Bildgröße ermitteln SIZE=`identify -format '%wx%h' $i` # Zieldateinamen festlegen DESTNAME=`basename $i .jpg`".png" convert -size $SIZE xc:none -draw "roundRectangle 0,0 $SIZE, 15,15" $i -compose SrcIn -composite $DESTNAME done echo "done."
Die Zeilen convert... und -compose stehen in einer Zeile
Das Problem besteht nun darin, das das Script nur transparente PNGs ausspukt, welche die korrekte Größe haben :(
Was habe ich übersehen? Was nicht beachtet?
Gruß und Danke
Tilo
ich möchte per Script in einem Verzeichnis alle jpg's mit runden
for i in *.jpg; do
nein
for i in *.jpg; do
Haben bestimmte Bilder Leerzeichen im Dateinamen?
nein, nur Tiefstriche _ oder Bindestriche - auch keine Umlaute
hi
----- Ursprüngliche Mail ----
Von: Tilo Wetzel tilo.wetzel@web.de An: Linux-User-Group Dresden lug-dd@mailman.schlittermann.de Gesendet: Sonntag, den 20. März 2011, 12:05:11 Uhr
SIZE=`identify -format '%wx%h' $i`
-->600x400
# Zieldateinamen festlegen DESTNAME=`basename $i .jpg`".png" convert -size $SIZE xc:none -draw "roundRectangle 0,0 $SIZE, 15,15" $i
meine tests haben gezeigt wenn ich -draw "roundRectangle 0,0 600,400 15,15" nutze gehts
probiers mal ohne statt x ein komma und das komma dahinter weg
andreas
Nabnd Andreas,
SIZE=`identify -format '%wx%h' $i`
-->600x400
# Zieldateinamen festlegen DESTNAME=`basename $i .jpg`".png" convert -size $SIZE xc:none -draw "roundRectangle 0,0 $SIZE, 15,15" $i
meine tests haben gezeigt wenn ich -draw "roundRectangle 0,0 600,400 15,15" nutze gehts
probiers mal ohne statt x ein komma und das komma dahinter weg
nun klappts. Und im nach hinein betrachtet auch vollkommen logisch. Danke!
fertiges Ergebnis: #!/bin/bash echo "add rount transparent round edges to image an convert to png" for i in *.jpg; do echo "processing $i ..." HSIZE=`identify -format '%h' $i` WSIZE=`identify -format '%w' $i` SIZE=`identify -format '%wx%h' $i` DESTNAME=`basename $i .jpg`".png" convert -size $SIZE xc:none -draw "roundRectangle 0,0 $WSIZE,$HSIZE 15,15" $i -compose SrcIn -composite $DESTNAME done echo "done."
Gruß Tilo
lug-dd@mailman.schlittermann.de