Imagemagick

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Version vom 12. September 2011, 10:00 Uhr von Kowa (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Definition

ImageMagick ist ein Open Source Bildbearbeitungsprogramm das eine Vielzahl von Bildformaten einlesen sowie ausgeben kann. Die Eigenheit und zugleich der größe Vorteil dieses Pakets ist es, dass es über die Kommandozeile bedient werden kann und es Erweiterungen für viele Programmiersprachen gibt. So wird es besonders häufig in Webanwendungen eingesetzt, da man sehr einfach z.B. mittels PHP oder Ruby on Rails Bilder dynamisch generieren kann.

Einsatzzwecke

Gerade im Web-Bereich ist ImageMagick sehr weit verbreitet, oftmals unbekannter Weise. Mit ImageMagick können Bilder schnell verkleinert werden (z.B. dynmische Thumbnail Generation) oder mehrere Bilder ineinander gefügt werden (Wasserzeichen). Doch man kann auch Zeichnen, so lassen sich ebenso komplexe Grafiken anfertigen.

Installation

ImageMagick ist fester Bestandteil vieler Linux Distributionen und muss hier selten nachinstalliert werden. Die Verwendung als Modul für den weit verbreiteten Apache Webserver ist ebenso geläufig, so bieten dies viele Webhoster bereits standardmäßig an.

Im folgenden werden die Installationsmöglichkeiten der vorkompilierten Pakete kurz aufgezeigt. Natürlich kann das gesamte Paket auch selbst kompiliert werden, da es vollständig als Source Code vorliegt.

Windows

Für die Windows Plattform gibt es einen komfortablen Installer der einem jegliche Arbeit abnimmt. Einfach die aktuelle Version herunterladen und die ausführbare .exe Datei starten. ImageMagick ist für die gängigen Windowsplattformen (NT 4, 2000, XP, Vista) verfügbar.

Linux / Unix / Mac OS

Für Linux gibt es das ImageMagick Paket als RPM Paket für verschiedene Distributionen. Sollte die gewünschte Distribution nicht verfügbar sein, so kann es sich lohnen eine Artverwandte Version zu testen, ansonsten muss das Paket manuell kompiliert werden.

Nach der Installation des RPM Pakets müssen noch einige Pfadvariablen angepasst werden. So muss die MAGICK_HOME Variable gesetzt werden:

export MAGICK_HOME="$HOME/ImageMagick-6.4.2"

Auf einigen Linux-Systemen muss zudem noch der LD_LIBRARY_PATH angepasst werden:

export LD_LIBRARY_PATH="$MAGICK_HOME/lib"

In einigen Fällen kann es vorkommen dass das bin Verzeichnis noch nicht im Suchpfad aufgeführt ist, dann muss dieser mittels

export PATH="$MAGICK_HOME/bin:$PATH

ebenfalls gesetzt werden.

Einschränkungen

Gerade im Web-Bereich liegen oft viele Kunden auf einem Server und teilen sich somit die verfügbare Rechenleistung und den Arbeitsspeicher. ImageMagick kann hier beim Bearbeiten von großen Daten sehr schnell an das gegebene Limit stoßen und somit nicht nur den eigenen Webauftritt beeinflussen sondern auch andere Webauftritte lahm legen. Daher sollte besonders auf eine zeitnahe Ausführbarkeit geachtet werden und große Bilder eventuell bereits im Vorfeld verkleinert werden.

Unterstützte Skriptsprachen

  • Ada
  • C
  • Ch
  • COM+
  • C++
  • Java
  • Lisp
  • Neko/haXe
  • .NET
  • Pascal
  • Perl
  • PHP
  • Python
  • Ruby
  • Tcl/TK

Implementierungsbeispiele

Ruby on Rails

thumb = Image.from_blob(@picture['bin_img']).first
@picture['width'] = thumb.columns
@picture['height'] = thumb.rows
width_new = 100
height_new = thumb.rows * width_new / thumb.columns
thumb = thumb.resize!(width_new,height_new)

Dieses Code-Beispiel erstellt ein Thumbnail mit der fixen Breite von 100 Pixeln aus einem Urpsrungsbild mit größeren Dimensionen.

Quellen