ImageMagick

Aus MindLoot
Wechseln zu: Navigation, Suche

ImageMagick ist der Name eines freien quelloffenen Softwarepakets zur Erstellung und Bearbeitung von Rastergrafiken. ImageMagick kann momentan mehr als 90 der größtenteils verwendeten Bildformate lesen, verändern und schreiben. Außerdem lassen sich Bilder dynamisch generieren, weshalb es auch im Bereich der Webanwendungen verwendet wird.

Bedienung mit grafischer Oberfläche

Der Befehl display oder display dateiname.endung öffnet die grafische Oberfläche des Programms im X-Server und den Zugriff auf das sichtbar gewordene Bild. Auf die wichtigsten Bearbeitungsfunktionen ist sodann durch die linke Maustaste zuzugreifen. Bei der Bearbeitung der Bilder über die Kommandozeile wird das Bild nicht gezeigt, die Bearbeitung ist dementsprechend schneller.

Bedienung mit Kommandozeile

Das Paket ImageMagick enthält sowohl mehrere Dienstprogramme für die Kommandozeile, als auch eine für viele Programmiersprachen verfügbare Programmbibliothek, um die verfügbaren Funktionen direkt in einem Programm zu verwenden.

Die von ImageMagick beherrschten Funktionen strecken sich vom Zusammenfügen mehrerer Bilder über das Hinzufügen bzw. Erzeugen von einfachen Formen und Schrift, Verzerrungen, Grössenveränderung und Drehen der Bilder bis hin zu wie von GIMP und Adobe Photoshop bekannten Filterfunktionen wie Unschärfe, Solarisation, Kontrastanpassung oder Invertierung.

ImageMagick enthält neben den Dienstprogrammen zur Bildmanipulation außerdem das Programm import mit dem sich unter X11 Bildschirmfotos erstellen lassen und das Programm display, das als Grafikbetrachter fungiert.

convert

Mit convert konvertiert man Bilder in ein anderes Format. Das Ziel-Format wird anhand der Endung erkannt.

  • Konvertierung eines GIF in ein JPEG:
$ convert QuellDatei.gif ZielDatei.jpg
$ convert foo.gif foo.jpg
  • Man kann auch die Größe von Bildern (zum Beispiel für Miniaturansichten) ändern (auch nützlich in ["ShellScript"]en):
$ convert -size 120x120 GroßesBild.tiff -resize 120x120 NeueMiniAnsicht.png
  • Hier werden alle *.jpg-Bilder (mit gleichem Seitenverhältnis) in ein kleineres Format gebracht, wobei die Zieldateien im Unterordner small (der existieren muss) landen:
$ for i in *.jpg ; do convert "$i" -resize 250x188 "small/$i" ; done
  • convert kann aus einem Foto eine Kohlezeichnung (charcoal) machen:
$ convert orginal_foto.jpg -charcoal 5 kohle_bild.jpg
  • convert kann mehrere Bilder in einem Verzeichnis in eine Animation umwandeln.
$ convert -delay 10 *.jpg film.mng
  • Abgespielt wird der Film mit dem Befehl
$ animate film.mng

display

Mit display Dateiname können Bilder in allen unterstützten Formaten (und das sind sehr viele) anzeigen lassen und bearbeiten.

  • Anzeige einer Bilder-Serie:
$ display *.jpg

(SpaceTaste für vor, Backspace für zurück)

  • Um sich eine Übersicht von Bildern in einem Verzeichnis zu schaffen ohne alle Bilder laden zu müssen gibt es die Option vid (virtual directory). Mit [STRG-S] läst sich die Übersicht auch abspeichern.
$ display "vid:*.jpg"
  • Tastaturkürzel von display:
Strg-O Bild Laden Leertaste Nächstes Bild Strg-H Vorheriges Bild Strg-S Speichern
Strg-Q Beenden ohne Speichern Strg-Z Letzte Aktion Rückgängig Strg-R Letzte Aktion Wiederholen % Bildgröße ändern
h Bild horizontal drehen v Bild vertikal drehen L Helligkeit ändern C Kontrast erhöhen
Z Kontrast verringern F2 Fleckenreduktion F3 Prägungseffekt F4 Rauschen reduzieren
<F5> Rauschen hinzufügen F6 Bild schärfen F7 Bild weichzeichnen F8 Schwellwerte setzen
<F9> Kantenerkennung F10 Pixel um zufällige Werte verschieben F11 Bild beleuchten F12 Kanten Aufhellen oder verdunkeln (3d Effekt)

identify

identify liest sogenannte Meta-Informationen aus den Bildern.

$ identify img_1701.jpg
img_1701.jpg JPEG 1600x1200 DirectClass 761kb 0.000u 0:01
  • Ausgabeformat mit -format:
$ identify -format "%m width:%w height:%h %f\n" 2005-08-07_1803.jpg
JPEG width:1600 height:1200 2005-08-07_1803.jpg

Weitere Parameter findet man im Handbuch.

import

Mit import kann man screenshots machen. Der Befehl import beispiel.png verwandelt sich der Mauszeiger in ein Fadenkreuz, wenn man damit dann in ein Fenster klickt, macht import ein screenshot von dem Fenster und legt es im $HOME Verzeichnis des Benutzers ab.

  • Importieren des fenster mit Rahmen (frame):
$ import -frame fenster_mit_deko.png

mogrify

Mit mogrify ändert man Bilder direkt ohne neue Dateien zu erzeugen.

  • Hinzufügen eines schwarzen (0xFFFFFF) Rahmens (border) in einfacher (1x1) Stärke um eine Bild (bild.jpg):
$ mogrify -border 1x1 -bordercolor 0xFFFFFF bild.jpg
  • Bild skalieren auf eine Geometrie von 640x480 Pixel:
$ mogrify -geometry 640x480 bild.jpg
  • Skalieren mit Prozentangabe über '-resize' eines Bildes:
$ mogrify -resize 75% bild.jpg
  • Skalieren mit Prozentangabe über '-resize' mehrerer Bilder:
$ mogrify -resize 75% *.jpg
  • Skalieren auf eine Höhe von maximal 170 Pixel über '-resize' eines Bildes:
$ mogrify -resize x170 bild.jpg
  • Bild um 90 Grad nach rechts bzw nach links drehen:
$ mogrify -rotate "90>" bild.jpg
$ mogrify -rotate "90<" bild.jpg

Die Anführungszeichen sind wichtig, da sonst das '>' als Umleitung von der Shell interpretiert wird und bild.jpg dabei gelöscht wird.

composite

Mit composite kann man ein Logo in ein Bild positionieren.

  • ein Logo in die linke untere Ecke eines Bildes einfügen:
$ composite -gravity SouthEast logo.png QuellDatei.gif ZielDatei.jpg

Qualität

Die Qualität der von ImageMagick gezeichneten 2D Formen, Schriften und Flächen ist sehr gut. ImageMagick beherrscht auch Antialiasing. Die Filterfunktionen haben allerdings geringere Qualität und können mit denen von Bildbearbeitungsprogrammen wie GIMP und Adobe Photoshop zur Zeit nicht mithalten.

Entwickler

ImageMagick wird momentan von mehr als 30 Stammentwicklern und unabhängigen Beiträgen weltweit aktiv weiterentwickelt. Der Programmcode selbst wird hierbei von einer Organisation namens „ImageMagick Studio LLC“ getragen, etwa vergleichbar mit der Apache Software Foundation.

GraphicsMagick

GraphicsMagick ist ein Fork von ImageMagick, Version 5.5.2, entstanden im November 2002. Die Entwickler bemühen sich um ein offeneres Entwicklungsmodell, eine konstante Benutzerschnittstelle, effizientere Programmierung und höhere Verarbeitungsgeschwindigkeit. GraphicsMagick bietet eine verbesserte Unterstützung für Bilder mit hoher Farbtiefe und das im Filmbereich verwendete DPX-Format.

Einige der erzielten Verbesserungen sind wiederum in ImageMagick übernommen worden.

Weblinks