ImageMagick
Achtung dieser Artikel ist noch in Arbeit und dient vorläufig nur als Vorlage. Dieser Beitrag zu Linux oder der Abschnitt ist in Bearbeitung. Weitere Informationen findest du hier. Der Ersteller arbeitet an dem Beitrag oder Abschnitt und entsorgt den Wartungsbaustein spätestens 3 Tage nach der letzten Bearbeitung. Änderungen außer Rechtschreibkorrekturen ohne Absprache mit dem Urspungsautor sind möglichst zu vermeiden, solange dieser Baustein noch innerhalb der genannten Frist aktiviert ist. |
Robi 15:32, 22. Apr 2007 (CEST)
ImageMagick http://www.imagemagick.org/image/logo.jpg | |
---|---|
{{{Screenshot}}} {{{Beschreibung}}} | |
Basisdaten | |
Entwickler: | ImageMagick Studio LLC |
Aktuelle Version: | 6.3.3-9 |
letzte Veröffentlichung: | 20.04.2007 |
Betriebssystem: | Linux, Windows, Solaris, MacOS, FreeBSD |
Kategorie: | Grafik |
Lizenz: | GLP kompatibel |
Deutschsprachig: | Nein |
Webseite: | http://www.imagemagick.org |
Inhaltsverzeichnis
Was ist was kann ImageMagick
ImageMagick® ist eine Softwarepaket, zum Erstellung und Bearbeitung von Rastergrafiken. Es kann Bilder in eine Vielzahl gebräuchlicher Formate (derzeit ungefähr 100) einschließlich DPX, GIF, JPEG, JPEG-2000, pdf, PhotoCD, png, Postskriptum, SVG und tiff lesen, umwandeln und schreiben. Mit ImageMagick können zum Beispiel Bilder kombiniert, in andere Formate umgewandelt, gedreht, gespiegelt, zugeschnitten oder in der Größe verändert werden. Es lassen sich aber auch umfangreiche Manipulationen an den Bildfarben und verschiedene spezielle Effekte und Filter anwenden, oder Text, Linien, Polygone, Ellipsen und Bézier Kurven mit ImageMagick zeichnen. Die Funktionalität von ImageMagick wird gewöhnlich von der Kommandozeile oder aus Scripten heraus verwendet. Darüber hinaus bietet ImageMagick aber auch die Möglichkeit und Schnittstellen, um die Funktionen aus anderen Programmen und Programmiersprachen heraus, aufzurufen. Es lassen sich Bilder auch dynamisch erzeugen oder ändern, was es unter anderem für Webanwendungen sehr interessant macht. Einen kleinen Überblick über Möglichkeiten der Bildbearbeitung mit ImageMagick kann man sich auf der Beispielseite ansehen.
ImageMagick ist eine freie Software, die sowohl als fertige Programmpakete für eine ganze Reihe Betriebssysteme, sowie auch als Quellenprogrammpaket zur Verfügung steht, und die frei verwendet, kopiert, geändert und verteilt werden kann. Seine Lizenz ist mit GPL kompatibel. ImageMagick läuft auf alle Hauptbetriebssysteme.
Hier sind einige Beispiele aufgeführt, was man mit ImageMagick tun kann:
- Formatumwandlung: ein Bild von einem Format in andere umwandeln (z.B. png zu JPEG)
- Transformation: die Größe neu bestimmen, drehen, beschneiden, flippen oder trimmen
- Bildtransparents: Teile eines Bildes unsichtbar machen
- Zeichnen: Formen oder Text einem Bild hinzufügen
- Dekorieren: einen Rand oder einen Rahmen einem Bild hinzufügen
- Spezielle Effekte: Unschärfe, schärfen, Schwellewerte anwenden oder abtönen eines Bildes
- Mathematische Berechnungen: einen mathematischen Ausdruck auf ein Bild oder einzelne Bildkanäle anwenden
- Text u. Anmerkungen: Schrift oder künstlerische Textverzierungen auf einem Bild einsetzen
- Identifikation: das Format und die Attribute eines Bildes beschreiben oder auslesen
- Animation: eine GIF Animation von einer Gruppe Bildern erstellen
- Bildmontage: Uberdeckung von Bildern oder mischen der einzelnen Bildkanäle
- Kombinationen: ein Set von Vorschaubilder als Bild erstellen
- Unterstützung für große Bilder: Mega- und Gigapixel Bildgrößen lesen, verarbeiten oder schreiben
Installation
Bemerkungen zu den Versionen
An ImageMagick wird zur Zeit sehr viel und erfolgreich gearbeitet, das umfasst sowohl neue Funktionen und Methoden wie auch die Beseitigung von Bugs. Es ist also nicht verwunderlich, wenn fast wöchentlich eine neue Sub-Version auf den Download-Servern zu finden ist. (Changelog) Das hat aber nicht nur Vorteile. Nicht alles was man unter Beispiele findet, wird man auf seinem Rechner zum laufen bekommen, da dort oftmals in den Beispielen die neusten Methoden vorgestellt und dokumentiert werden. Und hat man mit Hilfe der oben genannten Beispiele endlich sein Script so, dass es genau das macht was man will, läuft das Script aber nicht zwangläufig auf dem nächten Rechner auch, wenn dort eine ältere Version darauf ist. Einen sehr großen Sprung hat es zwischen der Hauptversion 5 und 6 gegeben. (Die Version 5 wurde zB noch unter Suse 9.1 ausgeliefert) Hier kann man davon ausgehen, dass einige Befehle und Optionen und somit ganze Scripte zwischen beiden Hauptversionen überhaupt nicht kompatibel ist. Eine Erklärung warum das notwendig war, kann man nachlesen unter why. Man sollte sich also überlegen, mit welcher Version man komplizierte Scripte und Konzepte mit ImageMagick entwickeln will, die dann auch auf anderen (eventuell älteren Versionen) Rechnern laufen sollen. Im Zweifelsfall sollte man daran denken, bei der Weitergabe komplizierter Scripte eine Verweis auf die eigene verwendete Version von ImageMagick zu hinterlegen. Als Anhaltspunkte hier die ausgelieferten Versionen von SuSE. (Es werden bei den default Onlineaktualisierungen von SuSE auch keine neuen Versionen installiert sondern lediglich Erneuerungen bei Sicherheitsproblemen oder schwerwiegenden Fehlern durchgeführt.)
Unter Suse sind folgende Versionen von ImageMagick ausgeliefert worden.
- SuSE 10.0: 6.2.3
- SuSE 10.1: 6.2.5
- SuSe 10.2: 6.3.0
- aktuell Version (22.04.2007) 6.3.3
ImageMagick selbst kompilieren
ImageMagick selbst zu kompilieren geht nach dem berühmten 3-Satz wie hier beschrieben. das configure-Script ohne besondere Optionen wird sich auf dem Rechner nach jeder Menge Library und Header-Dateien umschauen, und dementsprechend ImageMagick konfigurieren. Sobald configure fehlerfrei beendet wurde, sollte man sich dessen Ausgabe insbesondere folgenden Abschnitt etwas genauer anschauen.
ImageMagick is configured as follows. Please verify that this configuration matches your expectations. Host system type : i686-pc-linux-gnu Option Value ------------------------------------------------------------------------------- Shared libraries --enable-shared=yes yes Static libraries --enable-static=yes yes Module support --with-modules=yes yes GNU ld --with-gnu-ld=yes yes Quantum depth --with-quantum-depth=16 16 Delegate Configuration: BZLIB --with-bzlib=yes yes DJVU --with-djvu=yes yes DPS --with-dps=yes no FlashPIX --with-fpx=no no FontConfig --with-fontconfig=yes yes FreeType --with-freetype=yes yes GhostPCL None pcl6 (unknown) Ghostscript None gs (8.15.3) Ghostscript fonts --with-gs-font-dir=default /usr/share/ghostscript/fonts/ Ghostscript lib --with-gslib=yes no (failed tests) Graphviz --with-gvc=yes no JBIG --with-jbig=yes no JPEG v1 --with-jpeg=yes yes JPEG-2000 --with-jp2=yes yes LCMS --with-lcms=yes no Magick++ --with-magick-plus-plus=yes yes PERL --with-perl=yes /usr/bin/perl PNG --with-png=yes yes RSVG --with-rsvg=yes yes TIFF --with-tiff=yes yes Windows fonts --with-windows-font-dir= none WMF --with-wmf=yes yes X11 --with-x= yes XML --with-xml=yes yes ZLIB --with-zlib=yes yes
hier hat das Script entsprechend der Tools und Dateien die es auf dem Rechner gefunden hat, die Konfiguration der optional Features und optionalen Pakete zusammengefasst. Ist hier bei einer gewünschen Option ein no oder none eingetragen, sollten man mit dem Paketmanager die entsprechenden Devel-Pakete oder gar die entsprechenden Libray- oder Programmpakete nachinstallieren und configure noch einmal laufen lassen.
Schnittstellen zu anderen Programmen oder Programmiersprachen
Zur Zeit sind folgende Interface für ImageMagick bekannt.
- G2F (Ada)
- MagickCore (C)
- MagickWand (C)
- ChMagick (Ch)
- ImageMagickObject (COM+)
- Magick++ (C++)
- JMagick (Java)
- CL-Magick (Lisp)
- nMagick (Neko/haXe)
- MagickNet (.NET)
- PascalMagick (Pascal)
- PerlMagick (Perl)
- MagickWand for PHP (PHP)
- PythonMagick (Python)
- RMagick (Ruby)
- TclMagick (Tcl/TK)
Die Befehle von ImageMagick
convert
convert ist das wohl wichtigste Kommando innerhalb ImageMagick. Die meisten Operationen können mit diesem Kommando gemacht werden.
Convert kennt eine Unmenge an Operatoren, Settings und Kombinationen die auf ein oder mehrere Eingangsbilder sowohl einzeln oder in Kombinationen Anwendung finden können, um dann daraus ein oder mehrere Ausgangsbilder zu erstellen. Und damit noch lange nicht genug kann convert auch mit einer Befehlszeile ganze Sequenzen von Bilder verarbeiten, oder intern in fast beliebiger Schachtelungstiefe Zwischenbilder in eine Stack speichern, um sie von dort aus in eine der nächsten Teilschritte weiterzuverarbeiten. Eine Einführung in die Kommandostruktur und deren Möglichkeiten kann hier nachgelesen werden.
Mit convert können unter anderem Kopien von Bilddateien in andere Bildformate oder Farbtiefen hergestellt werden, es können die Größe der Bilder verändert, Bilder gedrehen, gespiegeln oder verzerren werden, Bildteile herausgeschnitten, oder weggeblendet werden, Rahmen und Hintergrund der Bilder kann gestaltet werden, es können Bilder beschriftet oder es kann mit den Zeichnenwerkzeugen oder nur durch pure Mathematik Zwischenbilder oder Bildmasken für die weitere Bildverarbeitung neu erstellt werden. Es konnen mehrere Bilder zu einen Bild montiert und dabei die Farbkanäle der einzelnen Bilder auf die unterschiedlichste Art beeinflußt werden. Es können animierte Bilder erzeugt und bearbeitet werden, und es können Fotos be- und überarbeitet werden mit so ziemlich allen Funktionen die grafische Bildbearbeitungsprogramme auch haben, und und und.
Das Wichtigste: die Ursprungsbilder werden mit convert nicht überschrieben und bleiben erhalten wie sie sind, und es werden dabei immer neu Bilddateien erzeugt.
Die Möglichkeiten und Kombinationsmöglichkeiten dieses Kommandos sind schier unüberschaubar. Leider ist die Verständlichkeit und Übersichtlichkeit der einzelnen Kommandos dann manchmal auch nicht mehr überschaubar.
Wer sich damit näher damit befassen möchte dem sei die Beispielseite von Anthony Thyssen empfohlen.
Für alle anderen eine kleine Seite mit nützlichen Beispielaufrufen und Kommentaren zu den Befehlen.
mogrify
mogrify ist in vielerlei Hinsicht gleich dem Kommando convert. Die Optionen sind auch analog denen von convert. Mogrify arbeitet jedoch immer ein Bild nach dem anderen ab, und nicht alle Funktionen von convert sind somit damit machbar. Der Hauptunterschied besteht jedoch darin, dass mogrify, wenn wir es ihm nicht explizid anweisen wird, die Ursprungsdatei überschreibt. Die Änderungen werden also unter dem Namen der Ursprungsdatei abgespeichert. Aus diesem Grunde sollte man mit mogrify sehr bedacht umgehen, und von den Dateien Kopien vor der Bearbeitung erstellt haben. Der Befehl eignet sich also immer dort, wo Dateien gleich an Ort und Stelle bearbeitet werden sollen, ohne dabei extra neue Dateien anzulegen.
Achtung: |
der Umgang mit dem Befehl mogify ist gefährlich, da in der Vielzahl der Fälle das Ergebnisbild unter den selben Namen wie das Ursprungsbild abgelegt wird. Man sollte unbedingt vorher Sicherheitskopien der Bilder anfertigen |
Einige einfache Beispiele für die Benutzung dieses Programmes
montage
Montage ist ein weiteres Kommando zur Bildbearbeitung, das unter anderem auch eine Vielzahl Optionen von convert verarbeiten kann. Es wurde jedoch speziell für die Erzeugung von Thumbnails von Bildern und deren Gruppierung und Gruppenansicht entwickelt. Darüber hinaus wird montage vor allem dort verwendet, wo mehrere Bilder aneinander gereiht und so zu einem einzigem Bild zusammengesetzt werden sollen. Für einige Spezialanwendungen wie zB. Textgenerierung aus verschiedenen Fonts und ähnlichem, ist es sehr gut geeignet.
Hinweis: |
die Optionen und Möglichkeiten dieses Befehles sind in den Hauptversionen 5 und 6 sehr unterschiedlich. |
Einige einfache Beispiele für die Benutzung dieses Programmes
composite
composite ist ein sehr spezielles Kommando, dessen Funktionen sich auch aus den anderen Programmen von ImageMagick aufrufen lassen. Es ermöglicht die verschiedensten Methoden des mischens und überlagerns von 2 und mehreren Bildern. Die Funktionen gehen zT. hier weit über das Maß hinaus, dass man von einem normalem Grafikbearbeitungsprogramm erwarten würde. Die Anwendung dieses Befehles oder seiner Funktionen setzt ein grundlegendes Wissen über Bildformate, Farbräume, Farben und Techniken voraus, und/oder kostest sehr viel Zeit beim ausprobieren und testen. Mit diesem Befehl beginnt wohl die Zauberei in der Grafikbearbeitung.
An dieser Stelle kann hier für Möglichkeiten und weiterreichende Informationen nur auf Beispielseiten verwiesen werden, auch wenn hier und da in den Befehlsbeispielen hier im Wiki die eine oder andere Funktion dieses Befehles genutzt wird.
display
animate
Beim selber gestalten oder bearbeiten von animierten Bildern hat man das Problem, wo kann man seine Zwischenergebnisse oder die gesammte Animation jetzt anschauen? display liefert hier auch nur ungenügende Ergebnisse, andere Programme eventuell nur das erste Bild der Animation, und die dafür vorgesehenen Plugins und Programme zur Wiedergabe, haben keine Möglichkeit des manuellen Eingreifens in den Ablauf. Hierfür ist bei ImageMagick das Progamm animate gedacht. Mit animate lassen sich sowohl fertige Animationen, sowie auch Einzelbilder als Animation auf einer X-Oberfläche anzeigen.
Mit ein paar Tasten < > 'SPACE' ? 'F1' lässt sich auch die Geschwindigkeit ändern oder auf Einzelbildmodus umschalten, Bildinformationen ansehen oder Hilfe holen. Die Rechte Maustaste öffnet ein Service-Menü, damit kann man dieses und noch einiges mehr, dann auch noch übersichtlich mit der Maus steuern. Mit einer Reihe von Optionen beim Start lassen sich dann noch einige Feineinstellungen oder Effekte erreichen.
Das einfache Abspielen einer animierten GIF ist recht simpel:
unter KDE oder Gnome aus einem Terminal heraus einfach
animate datei.gif
Weitere Informationen zu animate
import
Mit dem Befehl import können vom X-Server Screenshots erstellt werden. Es können der gesamte Desktop einzelne Fenster oder frei definierte Bereiche als Bild abgespeichert werden, siehe dazu auch die Kurzbeschreibung. Ein ganze Reihe von Optionen ermöglicht es dabei auch gleich bestimmte Bearbeitungsschritte, die man sonst später noch machen müsste, gleich mit zu erledigen, zB eine transparente Farbe, die richtige Größe und Auflösung, Farbtiefe und vieles mehr. Dabei kann das automatisch, verzögert, auf Mausklick ausgelöst, oder gleich mehrfach als Serienbild aufgenommen werden, um dann daraus zB. einen Film zu machen.
identify
Um mehr über ein Bild oder mehrere Bilder zu erfahren, dazu gibt es den Befehl identify. mit diesem Befehl lassen sich Format und Eigenschaften eines Bildes anzeigen. Defekte oder unvollständige Bilder werden hier ebenso als solche erkannt.
identify BILDERNAME
gibt uns im wesentlichen einen kurzen Überlick über Bildtyp, Bild- und Datengröße, Farbe
identify -verbose BILDERNAME
gibt uns die kompletten detailierten Daten die in diesem Bild gespeichert sind, einschließlich eventueller EXIF
Durch eine Reihe von zusätzlichen Parametern lassen sich auch gezielt wichtige Paramerter direkt abrufen, ohne sie erst noch aus dieser Liste ausfiltern zu müssen. Die wichtigsten Informationen kann man alle mit der Option -format gezielt auslesen zB. um nur die Größe eines Bildes zu ermitteln
# identify -format "%wx%h" img_0002.jpg 2560x1920
und um die Druckgröße eines Bildes bei 96dpi ( 96 Pixel je Zoll )zu errechnen
# identify -format "%[fx:w/96*2.54] cm X %[fx:h/96*2.54] cm" img_0002.jpg 67.7333 cm X 50.8 cm
Für weiter Informationen zu allen Optionen kann diese Startseite genutzt werden.
conjure
conjure ist ein spezielles Tool von ImageMagick, mit dessen Hilfe Bildbearbeitung mittels Script möglich ist. Script bedeutet hier allerdings nicht Shellscript sondern eine auf XML basierende spezielle Script Sprache MSL ( Magick Scripting Language ). Eine kurze Beschreibung gibt es hier nähere Informationen zu MSL sind auch im Internet auf die Schnelle nicht zu finden, wer sich damit befassen möchte kann dieses HOWTO anschauen, inwieweit es kompatibel ist, ist nicht bekannt. Ansonsten sollen in der Datei coders/msl.c lt. ImageMagick nähere Informationen zu MSL sein. Aus der Dürftigkeit der Informationen muss man schließen, dass conjure weniger gebräuchlich ist.
compare
xtp
Links
- Beispiele für die Benutzung von ImageMagick
- Graphics from the Command Line
- More graphics from the command line
- Kleiner Tipp am Rande für alle die nicht immer online sein wollen, wenn ihr ImageMagick installiert habt, dann habt ihr einige der Hilfe- und Dokuseiten als HTML mit installiert (normalerweise unterhalb von /usr/share/doc/packages/ImageMagick/ )