Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:imagemagick

imagemagick

Beispiele

Einfache Anzeige des Bildes

display Pinguine.jpg

Konvertieren

convert Falkland_Islands_Penguins_36.jpg Pinguine.png

Soll das Seitenverhältnis ignoriert werden, ist hinter der Größe ein »!« anzugeben. Damit wird das Bild verzerrt.

convert Falkland_Islands_Penguins_36.jpg -scale 800x600! Pinguine.jpg

Größe ändern (resize)

convert image.jpg -resize 400x400 -quality 85 image_resize.jpg

Bild skalieren

convert Falkland_Islands_Penguins_36.jpg -scale 800x600 Pinguine.jpg

Rahmen ergänzen:

convert Pinguine.jpg -border 10 Pinguine-Rahmen.jpg

Eine andere Farbe lässt sich mit -bordercolor angeben:

convert Pinguine.jpg -bordercolor blue -border 10 Pinguine-Rahmen.jpg

Ein 3D-Rahmen lässt sich mit -frame erzeugen, die zugehörige Farbe ist -mattecolor:

convert Pinguine.jpg -mattecolor blue -frame 30x20+7+5 Pinguine-Rahmen.jpg

Text ergänzen

convert -pointsize 16 label:Text Text.png

Der Text lässt sich auch direkt ans Bild anfügen:

convert Pinguine.jpg -pointsize 16 label:Text -gravity south -append Pinguine-Text.jpg

Das Ganze lässt sich noch ausbauen:

Dabei werden mit -background und -fill die Farben für den Hintergrund und die Schrift angegeben. Weitere Beispiele zur Texterzeugung finden sich auf der Webseite des Projekts.

Mit einer Schleife können so alle Bilder in einem Verzeichnis mit ihren Namen ergänzt werden:

for f in *.jpg; do convert "$f" -mattecolor blue -frame 5x5+0+5 -pointsize 16 -background blue -fill white label:"$f" -frame 0x5 -gravity south -append -frame 15x10+5+0 Bild_mit_Namen/"$f"; done

Abgerundete Ecken

In diesem Beispiel wird eine Maske erzeugt, die anschließend über das Bild gelegt wird.

convert -size 512x340 xc:white -fill black -stroke black -draw "roundrectangle 0,0 512,340 40,40" Maske.png

Wie im vorigen Textbeispiel wird die Grafik neu erzeugt. Dazu wird mit -size die Größe des zu erzeugenden Bildes angegeben (mittels identify ermittelt). Mit xc:white wird ein Bild mit weißem Hintergrund erzeugt. Anschließend werden Füll- und Malfarbe auf schwarz gesetzt und in -draw wird ein Zeichenbefehl, hier ein abgerundetes Rechteck, angegeben. Das Bild wird nun als PNG-Datei gespeichert (um keinen Qualitätsverlust zu erleiden). Im nächsten Schritt wird das Foto entsprechend der gerade erzeugten Maske verändert:

convert Pinguine.jpg Maske.png -compose lighten -composite Pinguine-abgerundet.jpg

Das Erzeugen einer temporären Masken-Datei ist nicht nötig, sie hilft aber beim Nachvollziehen der einzelnen Schritte. Die Maske kann direkt in einem Befehlsblock erzeugt werden:

convert Pinguine.jpg \( -size 512x340 xc:white -fill black -stroke black -draw "roundrectangle 0,0 512,340 40,40" \) -compose lighten -composite Pinguine-abgerundet.jpg

Ein Befehlsblock wird mit runden Klammern definiert, der Backslash wird für die Shell benötigt. Der Block in den runden Klammern wird für sich ausgeführt, das Resultat wird wie ein Bild weiterverarbeitet.

3D-Effekt

convert Pinguine.jpg -raise 10 Pinguine-erhoben.jpg

Diesen kann man noch ausbauen. Zuerst wird eine Maske erzeugt:

convert Pinguine.jpg -fill gray50 -colorize 100% -raise 10 -normalize -blur 0x5 Maske.png

Um den Aufruf besser zu verstehen, hilft es, ihn schrittweise nachzuvollziehen. Mit -fill gray50 -colorize 100% wird das Ausgangsbild mit grau übermalt. Es wird somit eine graue Fläche in der Größe des Ausgangsbildes erstellt. Mit -raise 10 wird der einfache 3D-Effekt erzeugt. Die Farben werden mit -normalize angepasst, so dass die hellste Farbe weiß ist und die dunkelste schwarz. Nun werden mit -blur 0x5 die Farben verwischt. Anschließend wird die Helligkeit des Bildes entsprechend der Maske angepasst:

convert Pinguine.jpg Maske.png -compose hardlight -composite Pinguine-3D.jpg

Abgerissener Rand

Einen Effekt wie bei einem abgerissen Bild erreicht man mit der folgenden Maske:

convert Pinguine.jpg -fill black -colorize 100% -virtual-pixel white -spread 20 -blur 0x5 -threshold 50% -spread 20 -blur 0x3 -threshold 50% -spread 1 -blur 0x1 Maske.png

Auch hier empfiehlt es sich, die Schritte einzeln nachzuvollziehen. Analog zu obigem Beispiel wird mit -fill black -colorize 100% eine schwarze Fläche erzeugt. Die Option -virtual-pixel white setzt die Farbe außerhalb des Bildes auf weiß. -spread 20 verteilt die Pixel zufällig (einfach mal an Pinguine.jpg ausprobieren). Bei der schwarzen Fläche hat dies nur einen Effekt am Rand, dort werden schwarze Pixel gegen die weißen außerhalb eingetauscht. Mit -blur 0x5 wird verwischt und mit -threshold 50% werden die Pixel abhängig von ihrer Helligkeit in schwarz beziehungsweise weiß konvertiert. Anschließend wiederholen: Pixel zufällig verteilen, verwischen und auf schwarz/weiß setzen. Die Option -spread 1 -blur 0x1 führt zu einem rauhen Rand. Nun wird das Bild entsprechend der Maske aufgehellt: weiße Stellen aus der Maske werden im Bild weiß:

convert Pinguine.jpg Maske.png -compose lighten -composite Pinguine-abgerissen.jpg

gif aus Einzelbildern

convert -delay 1x5 -loop 0 images_dir/out*.gif animation.gif

Bilder zusammenfügen

Vertikal zusammenfügen

convert 1.png 2.png 3.png -append result/result-sprite.png

PDF aus Bildern erstellen

convert quelle.png ziel.pdf

Wildcard nutzen:

convert *.jpg ziel.pdf

Druckfertiges Dokument aus Bildern in A4 erstellen:

convert *.* -compress jpeg -resize 1240:1753 -units PixelsPerInch -density 150:150 -page a4 multipage.pdf

Ggf. -resize weglassen:

convert *.* -compress jpeg -units PixelsPerInch -density 150:150 -page a4 multipage.pdf

Bilder aus PDF extrahieren

pdfimages -j quelle.pdf zielverzeichnis

Informationen über Bilder anzeigen

USER
me@localhost:~$ identify Falkland_Islands_Penguins_36.jpg Pinguine.jpg Falkland_Islands_Penguins_36.jpg JPEG 2048×1361 2048×1361+0+0 8-bit sRGB 1.04MB 0.000u 0:00.000 Pinguine.jpg[1] JPEG 800×532 800×532+0+0 8-bit sRGB 258KB 0.000u 0:00.000

Siehe auch

linux/imagemagick.txt · Zuletzt geändert: von move

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki