convert

Aus Mikiwiki
Wechseln zu: Navigation, Suche

Der Shell-Befehl convert aus dem Paket Imagemagick dient zum Umwandeln zwischen Bildformaten sowie zur Grössenveränderung von Bildern, blur, crop, despeckle, dither, draw on, flip, join, re-sample, und vieles mehr.

Optionen

Option Beschreibung
-draw Dieser Parameter nimmt innerhalb von Anführungszeichen gleich mehrere weitere Argumente entgegen, wie etwa die Position des Wasserzeichens (z. B. "gravity south") oder die Farbe der Beschriftung ("z. B. "fill black text", "fill white text").
-font Schriftart zum Beschriften von Bildern. Als zusätzlicher Parameter wird entweder der Schriftname (z. B. "-font helvetica" oder "-font arial") oder der volle Pfad zu einer installierten Schrift angegeben (z. B. "-font /usr/share/fonts/truetype/msttcoreconts/Comic_Sans_MS.ttf").
-pointsize Schriftgrösse in Punkt (z. B. "-pointsize 10").
+polaroid Das Bild wird mit einem weissen Rahemn versehen und um einen zufälligen Wert gekippt, sieht danach also aus wie ein Polaroidfoto. Das Ausgabeformat muss Transparenz darstellen können (z. B. GIF oder PNG). (ab Imagemagick 6.3.2)
-polaroid Das Bild wird mit einem weissen Rahemn versehen und um den angegebenen Gradwert gekippt (z. B. "-polaroid 75"), sieht danach also aus wie ein Polaroidfoto. Das Ausgabeformat muss Transparenz darstellen können (z. B. GIF oder PNG). (ab Imagemagick 6.3.2)
-resize Verkleinerung des Bildes auf ein Rechteck, das genau in die Zielgrösse hineinpasst, ohne zu verzerren. "-resize 800x800" dient also als Maximalangabe und sorgt dafür, dass ein 1600x1200 Pixel grosses Bild auf 800x600 Pixel verkleinert wird; ein 1200x1600 Pixel grosses Bild wird auf 600x800 Pixel verkleinert.

Verwendung

Änderung von Bildgrösse, Bildqualität und Dateiformat

Umwandeln aller JPEG-Dateien im aktuellen Verzeichnis ins verlustfreie Format TIFF. Zwar benötigt dieses Dateiformat mehr Festplattenplatz, dafür entstehen beim Weiterbearbeiten mit Sicherheit keine unschönen Block-Artefakte.

$ for in in *.jpg; do convert $i $(basename $i .jpg).tiff; done

Umwandlung der Bilddatei "infile.bmp" ins JPEG-Format als Datei "outfile.jpg" mit Kompressionsgrad 3 ("-quality 3").

$ convert infile.bmp -quality 3 outfile.jpg

Verringerung der Anzahl Farben in Datei "infile.jpg" auf 256 und Umwandlung in die GIF-Ausgabedatei "outfile.gif".

$ convert infile.jpg -colors 256 outfile.gif

Veränderung der Datei "infile.jpg" in eine Art "Ölgemälde" in der Ausgabedatei "outfile.jpg".

$ convert infile.jpg -paint 10 outfile.jpg

Scharfzeichnen (mit Stärke 6) des Bilds "infile.jpg" und Speichern des Ergebnisses in der Datei "outfile.jpg".

$ convert -sharpen 6 infile.jpg outfile.jpg

Änderung der Bildgrösse

Veränderung der Grösse der Bilddatei "infile.png", die Ausgabedatei wird nach "outfile.png" geschrieben.

$ convert infile.png -resize 50% outfile.png

Umwandeln aller JPEG-Dateien im aktuellen Verzeichnis auf eine einheitliche Grösse. Die Grössenangabe "1024x1024" sorgt dafür, dass hoch- und querformatige Bilder am Ende gleich gross sind; die Bildseitenverhältnisse bleiben dabei erhalten und beim Skalieren wird die längste Seite auf 1024 gesetzt.

$ for pic in $(ls -1 *.jpg); do convert -verbose $pic -scale 1024x1024 $pic; done

Umwandeln aller JPG-Dateien im aktuellen Verzeichnis auf die Grösse 800x600 und Speichern im Unterverzeichnis "small_pics". Die Originale bleiben dabei erhalten.

$ test -d small_pics || mkdir small_pics && \
    for i in *.jpg; do convert -resize 800x800 "$i" "small_pics/$i"; done

Aus der Bilddatei "infile.png" wird ein neues Bild "infile-1024.png" mit den Abmessungen 1024x768 Pixel erzeugt.

$ convert -geometry 1024x768! infile.png infile-1024.png

Aus der Bilddatei "infile.png" wird ein neues Bild "infile-1024.png" mit den Abmessungen 1024x768 Pixel erzeugt. Das Bild wird dabei (ohne "!") auf diejenige Seitenlänge skaliert, für die das Bild am wenigsten geschrumpft werden muss.

$ convert -geometry 1024x768 infile.png infile-1024.png

Im Verzeichnis "klein" wird von jeder auf ".jpg" endenden Bilddatei ein Minibild mit einer Auflösung von 120x90 Pixel erzeugt.

$ for i in *.jpg; do convert "$i" -geometry 120x90! "klein/$i"; done

Wasserzeichen

Versehen des Bilds "infile.jpg" mit einem "Wasserzeichen" - das Ergebnis wird als Datei "outfile.jpg" gespeichert.

$ convert -font helvetica -pointsize 40 -draw "gravity south fill black text \
    0,12 'Copyright Hans Muster' fill white text 1,11 \
    'Copyright Hans Muster'" infile.jpg outfile.jpg

Versehen aller JPG-Bilder im aktuellen Verzeichnis mit einem "Wasserzeichen" - die Ergebnisse werden im Unterverzeichnis "copy_pics" gespeichert. Die Originaldateien bleiben erhalten.

$ test -d copy_pics || mkdir copy_pics && for i in *.jpg; do convert \
    -font helvetica -pointsize 40 -draw "gravity south fill black text \
    0,12 'Copyright Hans Muster' fill white text 1,11 'Copyright Hans Muster'" \
    "$i" "copy_pics/$i"; done

Ausstanzen

Für andere als rechteckige Bildausschnitte wird zuerst eine Stanzvorlage (auch: Maske; engl. matte) benötigt. Dazu wird mit einem Bildbearbeitungsprogramm ein Schwarzweissbild "maske.tiff" mit derselben Grösse wie das zu bearbeitende Bild "bild.tiff" erstellt. Alle darin schwarzen Bereiche werden später unsichtbar, alle weissen Bereiche bleiben sichtbar.

Mit dem Parameter "-composite" und angegebenen Methode werden die beiden Dateien "bild.tiff" und "maske.tiff" zusammengeführt. Die Methode "CopyOpacity" lässt im Ausgabebild "freistell.png" alle Stellen durchsichtig, an denen die Maske schwarz war. Wird Wert auf Transparenz gelegt, so muss ein diese Eigenschaft unterstützendes Dateiformat wie PNG gewählt werden.

$ convert bild.tiff maske.tiff +matte -compose CopyOpacity -composite freistell.png

Nun wird das ausgestanzte Bild auf einen neuen Hintergrund gebracht:

$ convert hintergrund.tiff ergebnis.png -composite ergebnis.tiff

Die Parameter "-geometry" und "-gravity" sorgen für eine pixelgenaue Plazierung. Im folgenden beispiel wird das ausgeschnittene Bild auf dem Hintergrund zentriert und danach 100 Pixel nach rechts und 10 Pixel nach unten verschoben.

$ convert hintergrund.tiff ergebnis.png -gravity Center -geometry +100+10 \
    -composite ergebnis.tiff

Der gesamte Vorgang kann auch ohne Umweg über eine PNG-Datei direkt in einem Schritt durchgeführt werden.

$ convert hintergrund.tiff bild.tiff maske.png -composite ergebnis.tiff

Bildergalerie

Erstellen einer HTML-Bildergalerie. Dabei wird die HTML-Datei "index.html" erstellt, die eine Übersichtsgrafik (im GIF-Format) mit einer verweissensitiven Grafik enthält. Über diese können die einzelnen Bilder mit einem Mausklick auf die Vorschaubilder angezeigt werden. Das Ergebnis (alle Bilddateien, die HTML- und die GIF-Datei) kann direkt ins WWW gestellt werden.

$ convert 'vid:*' index.html

Bildkommentar

Versehen der Bilddatei "infile.jpg" mit einem Kommentar. Die Ergebnis datei heisst "outfile.jpg".

$ convert -comment 'Der Uristier' infile.jpg outfile.jpg

Bilderrahmen

Das Bild "bild.jpg" wird in eine Art Papierrahmen eingeschlossen und um einen zufälligen Wert gedreht ("+polaroid"). Die Ergebnisdatei heisst "bild.png".

$ convert bild.jpg +polaroid bild.png

Das Bild "bild.jpg" wird in eine Art Papierrahmen eingeschlossen und um einen zufälligen Wert gedreht. Mit "-bordercolor" wird ausserdem die Rahmenfarbe, mit "-background" der Farbton für den Schatten festgelegt. Die Ergebnisdatei heisst "bild.png".

$ convert bild.jpg -bordercolor white -background black +polaroid bild.png

Das Bild "bild.jpg" wird in eine Art Papierrahmen eingeschlossen und um 75 Grad gekippt ("-polaroid 75"). Die Ergebnisdatei heisst "bild.png".

$ convert bild.jpg -polaroid 75 bild.png

Versehen des Bilds "infile.jpg" mit einem weissen Rahmen, der 10 mal 10 Pixel breit ist. Das Ergebnis wird in der Datei "outfile.jpg" gespeichert.

$ convert -bordercolor=white -border 10x10 infile.jpg outfile.jpg

Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen
country AQ.gif Imagemagick Studi LLC eng convertwbm
country DE.gif Linuxwiki ger ImageMagickwbm
country DE.gif Wikipedia ger ImageMagickwbm Enzyklopädischer Artikel