ImageMagick nützliche Beispiele
Hinweis: |
Bitte vor Änderungen an diesem Artikel die Hinweise auf den Diskussionsseite lesen . |
Inhaltsverzeichnis
Befehlsbeispiele mit convert
einfaches Formatumwandlung und Scalierung
Ein Ursprungsbild im Format JPEG soll umgewandelt und gespeichert werden als PNG.
Das Ursprungsbild (hier bild.jpg) soll dabei erhalten bleiben. Der entstehende Bildtype wird durch die Endung des Ausgangsbildes (hier .png) vorgegeben.
convert bild.jpg bild.png
Zusätzlich zu der Formatumwandlung möchten wir aber auch die Größe des Ausgangsbildes ändern. Wir möchten dabei das Seitenverhältniss des Orginalbildes jedoch beibehalten aber die Höhe und Breite auf jeweils 640 Pixel begrenzen. Hochkanntbilder haben dann 640 Pixel Höhe und normale Bilder haben 640 Pixel Breite, immer bei Beibehaltung der Seitenverhältnisse des Orginalbildes
convert bild.jpg -resize 640x640 bild.png
Um ein Bild unabhängig der Seitenverhältnisse auf eine ganz bestimmte Pixelgröße zu zwingen benutzt man ein Ausrufezeichen hinter der Größenangabe.
convert bild.jpg -resize 300x280! bild.png
Es ist auch möglich das Bild prozentuel zu vergößern oder zu verkleinern.
convert bild.jpg -resize 50% bild.png
Befehlsbeispiele mit mogrify
Befehlsbeispiele mit montage
Tricks und Tips für spezielle Aufgaben
Musterbilder erstellen
Hin und wieder braucht jemand von seinen Fotos für irgendwelche Zwecke Musterbilder. Diese Bilder sollen für andere zwar ansehbar und auch in einer geminderten Qualität aber nicht weiterverwendbar sein. Hier reicht es nicht aus, die Bilder am Rand zu beschriften oder irgendwo in die Ecke ein kleines Logo zu setzen. Es soll am besten ein riesen Logo quer über das Bild, damit man es nicht wegschneiden kann. Folgendes Script kann das erledigen.
#/bin/bash # Das Script sucht im aktuellem Verzeichnis nach ".jpg"-endenden Dateien und nimmt an es handelt sich um Bilder # von den Bildern werden Kopien definierter Groesse gemacht und mit Text-Wasserzeichen versehen # den so enstehenden Kopien wird die Vorsilbe "muster_" vor den Dateinamen gegeben. # erforderlich ist das Paket ImageMagick (Version 6) FONT="/usr/X11/lib/X11/fonts/truetype/VeraBd.ttf" # Die Schriftart die Verwendung finden soll FONTSIZE=120 # Die Schriftgroesse in Pixel (Werte 32 bis 120) COPYRIGHT="* Muster *" # der Wasserzeichentext SIZE="800x800" # die Bildergroesse die entstehen soll POS=Center # Position des Wasserzeichens (Mitte=Center Unten=South Oben=North) KOMPR=98 # jpeg Kompressionsfaktor [ 85 (normal) bis 98 (sehr gut)] # Infos zu den einzelnen Befehlen und weiteren Moeglichkeiten unter http://www.imagemagick.org/Usage convert -font $FONT -pointsize $FONTSIZE -background black -fill white \ label:"$COPYRIGHT" -trim +repage -bordercolor black -border 20x10 tmp_mask1.png convert tmp_mask1.png -blur 0x03 -shade 135x45 -normalize tmp_shade135.png convert tmp_mask1.png -font $FONT -pointsize $FONTSIZE -fill white -gravity center \ -stroke white -strokewidth 3 -draw "text 0,0 \"$COPYRIGHT\"" tmp_mask2.png convert tmp_shade135.png tmp_mask2.png +matte -compose CopyOpacity -composite mask3d.png rm tmp_mask1.png tmp_mask2.png tmp_shade135.png for BILD in *.jpg do composite mask3d.png "${BILD}" -resize $SIZE -gravity $POS -compose HardLight -quality $KOMPR muster_"$BILD" done rm mask3d.png
Der erste Teil des Scriptes ist dokumentiert. Hier werden die persönlichen Einstellungen gemacht. Aufgerufen wird das Script in dem Verzeichnis in dem die JPEG-Dateien liegen, von denen man die Muster braucht und zwar ohne irgend eine Option.
- der erste convert Befehl erstellt eine Bildmaske aus dem Schriftzug Dateiname tmp_mask1.png
- der zweite convert Befehl macht durch weichzeichnen Schatten und normalisieren daraus ein graues 3D-Schatten Bild Namens tmp_shade135.png
- der dritte convert nimmt die erste Maske als Vorlage und schreibt die selbe Schrift nocheinmal aber etwas verbreitert darauf tmp_mask2.png
- der vierte convert nimmt jetzt die 2 Maske und schneidet mit ihrer Hilfe das 3D Schattenbild aus, indem es den Rest unsichtbar macht.mask3d.png
- die beiden Masken und das Schattenbild werden gelöscht, die brauchen wir nicht mehr.
- in einer Schleife werden jetzt alle JPEG-Bilder einzeln mit mask3d.png überlagert und dabei ein verkleinertes Bild Namens muster_ALTERDATEINAME erstellt.
- nach Abschluss der Schleife wird auch mask3d.png gelöscht.
Achtung: es ist nicht ganz sicher seit welcher Version von ImageMagick dieses Script funktioniert es wurde getestet SuSE 10.1 und neuer.
Farb und Kontrastverbesserung bei Unterwasserbildern
Obwohl diese Methode hier auch auf normale Bilder anwendbar ist, stellen wir sie unter der Überschrift Unterwasserbilder, da hier der Effekt sehr ausgeprägt auftritt.
Unterwasserbilder zB. mit einer UW-Digitalkamera gemacht, sehen im Display der Kamera ja noch recht ansehlich aus. Sobald man sie aber über den Computer ansieht, erkennt man das ganze Übel. Jetzt kommen nicht nur Unschärfe und Bewegungsunschäfe und das Plankton im Blitzlicht so richtig zu Geltung, nein je größer wir uns das Bild anschauen, je mehr fällt auf, dass auf sehr vielen Bildern die Farben in Richtung hellblau, hellgrün oder helllila verwaschen aussehen, der Farbkontrast fehlt und überhaupt alles trübe aussieht. Es ist überhaupt kein Vergleich mit dem was man gesehen hat und fotografieren wollte. Die Kamera ist hier oftmals unschuldig, es ist vielmehr das Auge und Hirn das viel diffenzierter und genauer für jeden Augenblick neu Weißabgleich und Farbkorrekturen vornimmt, und uns so Farben und Kontraste vorgaugelt, die keine Kamera der Welt derzeit genauso reproduzieren kann. Bei vielen dieser Fotos kann man das mit einer digitalen Farbkorrektur jedoch einigermaßen hinbiegen, und so doch noch sehr schöne Fotos zusammenzaubern die in etwa dem entsprechen was das Auge gesehen hat. Früher habe ich das mit Gimp gemacht, das war jedoch sehr mühsam. Seit IM v6.2.6 ist die richtige Option dafür auch in ImageMagick enthalten.
convert img_0.jpg -channel 'RGBA' -contrast-stretch 1% -quality 98 korrektur_0.jpg
Mittels convert wird vom Bild img_0.jpg mittels contrast-stretch eine Farbspreizung über RGB und den Alpha-Kanal vorgenommen. Das Ergebniss wird mit niedriger Komprimierung in korrektur_0.jpg abgelegt.
Nicht alle Bilder lassen sich so direkt bearbeiten. Sind im Ausgangsbild sehr wenig unterschiedliche Farbbereiche vorhanden, dann wird diese Methode zu extrem. Es entstehen oftmals unnatürliche poppige Farben. Hier kann man folgendes versuchen, in dem mittels montage ein weiteres Bild mit breitem Farbbereich an das Bild angehängt wird und das so entstandene Doppelbild über contrast-stretch laufen läßt. Anschließend werden die Bilder wieder voneinander getrennt. Nach einigen Versuchen mit verschiedenen Bildern hat man oftmals dann doch noch ein einigermaßen brauchbares Bild.