ImageMagick

Aus Linupedia.org
Version vom 26. April 2007, 21:04 Uhr von Robi (Diskussion | Beiträge) (Link auf Beispiele)
Wechseln zu: Navigation, Suche
Höhe=24px
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


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.

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.

animate

import

display

identify

conjure

compare

häufig benötigte Funktionen am Beispiel

Formatumwandlung

Größenänderung

Thumbnail

Bilder gruppieren

Tips und Tricks für Fortgeschrittene

Links

Beispiele für die Benutzung von ImageMagick Englisch.png