Hallo, Am Sun, 25 Sep 2005, Al Bogner schrieb:
Am Samstag, 24. September 2005 20:08 schrieb Joachim Tüns:
mit "convert -scale 200x200 bild.jpg bild_klein.jpg" bekomme ich die Bilder von meiner Kamera auf Größen von 200x150 im Querformt oder 150x200 im Hochformat.
Ich möchte nun die Bilder genau auf 200x200 bringen, das heißt entweder oben und unten 25 Pixel hinzufügen oder links und rechts. Das ist vergleichbar zu der Funktion Leinwandgröße in Gimp.
man convert, convert -h und google haben mich nicht weiter gebracht.
Kennt jemand eine Lösung?
Schau mal zu http://www.cit.gu.edu.au/~anthony/graphics/imagick6/
Ich mache das in einer ähnlichen Situation mit composite
ungetestet:
#Querformat convert "$FILE" -resize 200x miff:- 2>/dev/null | composite \ gravity center - -size 200x200 xc:black "$NEWFILE"
Geht noch einfacher und mit Hoch- und Querformat gleich: composite -gravity center -geometry 200x200 -size 200x200 \ "$INFILE" xc:black "$OUTFILE" Dabei ist wichtig, $INFILE vor xc:black zu haben (sonst setzt das ein schwarzes Quadrat von 200x200 in die Mitte ;) Also, um z.B. alle .jpg-Dateien in einem Verzeichnis so zu behandeln: newsize=200x200; \ for infile in *.jpg; do \ outfile="${infile//.jpg/-${newsize}.jpg}"; \ test -e "$outfile" && { \ echo "$outfile already exists"; \ continue; \ }; \ composite -gravity center -geometry ${newsize} -size ${newsize} \ "$infile" xc:black "$outfile"; \ done Wobei man sowas mit JPEG-Dateien ja lieber nicht machen sollte, die Kompressionsverluste addieren sich... Also nur ganz am Schluss wieder zu JPEG konvertieren. HTH, -dnh --
How would one crash packaging? Unexpected end-of-roll on /dev/bubblewrap System halted. -- A. D. Barratt, Tanuki