convert: Unterschied zwischen den Versionen
Michi (Diskussion | Beiträge) |
Michi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 21: | Zeile 21: | ||
== Verwendung == | == Verwendung == | ||
=== Änderung | === Ä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. | |||
$ <b>for in in *.jpg; do convert $i $(basename $i .jpg).tiff; done</b> | |||
Umwandlung der Bilddatei "infile.bmp" ins JPEG-Format als Datei "outfile.jpg" mit Kompressionsgrad 3 ("-quality 3"). | Umwandlung der Bilddatei "infile.bmp" ins JPEG-Format als Datei "outfile.jpg" mit Kompressionsgrad 3 ("-quality 3"). | ||
Zeile 27: | Zeile 31: | ||
$ <b>convert infile.bmp -quality 3 outfile.jpg</b> | $ <b>convert infile.bmp -quality 3 outfile.jpg</b> | ||
Verringerung der Anzahl Farben in Datei "infile.jpg" auf 256 und Umwandlung in die GIF-Ausgabedatei "outfile.gif". | |||
Verringerung der Anzahl Farben in Datei "infile.jpg" auf 256 und Umwandlung in die Ausgabedatei "outfile.gif" | |||
$ <b>convert infile.jpg -colors 256 outfile.gif</b> | $ <b>convert infile.jpg -colors 256 outfile.gif</b> | ||
Zeile 38: | Zeile 38: | ||
$ <b>convert infile.jpg -paint 10 outfile.jpg</b> | $ <b>convert infile.jpg -paint 10 outfile.jpg</b> | ||
Scharfzeichnen (mit Stärke 6) des Bilds "infile.jpg" und Speichern des Ergebnisses in der Datei "outfile.jpg". | |||
$ <b>convert -sharpen 6 infile.jpg outfile.jpg</b> | |||
=== Änderung der Bildgrösse === | |||
Veränderung der Grösse der Bilddatei "infile.png", die Ausgabedatei wird nach "outfile.png" geschrieben. | |||
$ <b>convert infile.png -resize 50% outfile.png</b> | |||
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. | 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. | ||
Zeile 47: | Zeile 57: | ||
$ <b>test -d small_pics || mkdir small_pics && \ | $ <b>test -d small_pics || mkdir small_pics && \ | ||
for i in *.jpg; do convert -resize 800x800 "$i" "small_pics/$i"; done</b> | for i in *.jpg; do convert -resize 800x800 "$i" "small_pics/$i"; done</b> | ||
Aus der Bilddatei "infile.png" wird ein neues Bild "infile-1024.png" mit den Abmessungen 1024x768 Pixel erzeugt. | Aus der Bilddatei "infile.png" wird ein neues Bild "infile-1024.png" mit den Abmessungen 1024x768 Pixel erzeugt. | ||
Zeile 64: | Zeile 70: | ||
$ <b>for i in *.jpg; do convert "$i" -geometry 120x90! "klein/$i"; done</b> | $ <b>for i in *.jpg; do convert "$i" -geometry 120x90! "klein/$i"; done</b> | ||
=== Wasserzeichen === | |||
Versehen des Bilds "infile.jpg" mit einem "Wasserzeichen" - das Ergebnis wird als Datei "outfile.jpg" gespeichert. | |||
$ <b>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</b> | |||
Versehen aller JPG-Bilder im aktuellen Verzeichnis mit einem "Wasserzeichen" - die Ergebnisse werden im Unterverzeichnis "copy_pics" gespeichert. Die Originaldateien bleiben erhalten. | |||
$ <b>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</b> | |||
=== 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. | |||
$ <b>convert bild.tiff maske.tiff +matte -compose CopyOpacity -composite freistell.png</b> | |||
Nun wird das ausgestanzte Bild auf einen neuen Hintergrund gebracht: | |||
$ <b>convert hintergrund.tiff ergebnis.png -composite ergebnis.tiff</b> | |||
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. | |||
$ <b>convert hintergrund.tiff ergebnis.png -gravity Center -geometry +100+10 \ | |||
-composite ergebnis.tiff</b> | |||
Der gesamte Vorgang kann auch ohne Umweg über eine PNG-Datei direkt in einem Schritt durchgeführt werden. | |||
$ <b>convert hintergrund.tiff bild.tiff maske.png -composite ergebnis.tiff</b> | |||
=== Bildergalerie === | |||
Erstellen einer HTML-Bildergalerie. Dabei wird die HTML-Datei "index.html" erstellt, die eine Übersichtsgrafik (im [[GIF]]-Format) mit einer [[Verweissensitive Grafik|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. | Erstellen einer HTML-Bildergalerie. Dabei wird die HTML-Datei "index.html" erstellt, die eine Übersichtsgrafik (im [[GIF]]-Format) mit einer [[Verweissensitive Grafik|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. | ||
$ <b>convert 'vid:*' index.html</b> | $ <b>convert 'vid:*' index.html</b> | ||
=== Bildkommentar === | |||
Versehen der Bilddatei "infile.jpg" mit einem Kommentar. Die Ergebnis datei heisst "outfile.jpg". | Versehen der Bilddatei "infile.jpg" mit einem Kommentar. Die Ergebnis datei heisst "outfile.jpg". | ||
$ <b>convert -comment 'Der Uristier' infile.jpg outfile.jpg</b> | $ <b>convert -comment 'Der Uristier' infile.jpg outfile.jpg</b> | ||
=== Bilderrahmen === | |||
Das Bild "bild.jpg" wird in eine Art Papierrahmen eingeschlossen und um einen zufälligen Wert gedreht ("+polaroid"). Die Ergebnisdatei heisst "bild.png". | Das Bild "bild.jpg" wird in eine Art Papierrahmen eingeschlossen und um einen zufälligen Wert gedreht ("+polaroid"). Die Ergebnisdatei heisst "bild.png". | ||
Zeile 101: | Zeile 131: | ||
$ <b>convert bild.jpg -polaroid 75 bild.png</b> | $ <b>convert bild.jpg -polaroid 75 bild.png</b> | ||
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. | |||
$ <b>convert -bordercolor=white -border 10x10 infile.jpg outfile.jpg</b> | |||
== Weblinks == | == Weblinks == |
Aktuelle Version vom 27. November 2010, 18:30 Uhr
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 |
---|---|---|---|
Imagemagick Studi LLC | eng | convertwbm | |
Linuxwiki | ger | ImageMagickwbm | |
Wikipedia | ger | ImageMagickwbm | Enzyklopädischer Artikel |