Open Source im professionellen Einsatz
Linux-Magazin 12/2003

Bildbearbeitung mit dem Java-API von Image Magick

Bilder-Zauberer

Das Java-SDK bietet in der aktuellen Version einige Möglichkeiten für die Bildbearbeitung. Einfacher und performanter geht es aber mit JMagick, dem Java-API für das bekannte Image-Magick-Toolkit.

472

Mit Image Magick mag schon manch einer gearbeitet haben, ohne es zu wissen. Viele Tools verwenden in bester Unix-Manier unter der Haube die Sammlung der Image-Magick-Programme zur Bildbearbeitung. Seine Stärken spielt das Toolkit besonders dann aus, wenn es um die Massenverabeitung oder komplexe Automation von Bildbearbeitungsvorgängen geht.

In C geschrieben bietet es eine Reihe einfach zu bedienender Kommandozeilenprogramme an, zum Beispiel »mogrify« und »convert« für die Umwandlung zwischen Grafikformaten beziehungsweise das Skalieren von Bildern oder »display« für die Anzeige. Mit »man ImageMagick« erhält man eine Übersicht über alle Programme und darüber, was sie können. Die Kommandozeilenprogramme sind Frontends für das eigentliche Image-Magick-API[2]. Für das C-API gibt es zudem verschiedene Wrapper, unter anderem auch für Perl und eben Java.

Dreischritt mit Hindernissen

Der Quellcode des Java-API, JMagick genannt, steht auf der Website des Autors der Software[3] oder auf[4] bereit. Abhängig von der installierten Version von Image Magick wählt man sich die geeignete Version aus. Für diesen Coffee-Shop ist es die JMagick-Version 5.5.1 im Zusammenspiel mit Image Magick 5.5.4. Für Java-Pakete eher unüblich ist das Build-System mit »autoconf« erstellt. Der übliche Dreischritt »configure;make all;su -c "make install"« erzeugt aber zunächst mal eine Menge Fehlermeldungen.

Zuerst mahnt das Configure-Skript zu Recht die fehlenden Image-Magick- Headerdateien an - hier muss also zusätzlich das Image-Magick-Devel-Paket installiert sein. Außerdem ist »configure« der Aufenthaltsort der »libMagick«-Bibliotheken explizit mitzuteilen (obwohl diese ganz normal unter »/usr/lib« installiert sind). Die dynamische »libMagick« - zumindest in der hier verwendeten Version - ist zudem von Hand zu linken. Ein erneuter Versuch, der diese Vorgaben berücksichtigt, führt schließlich zum Erfolg:

./configure --with-magick-lib-dir =/usr/lib
make all
gcc -shared -o
lib/.libs/libJMagick.so.5.0.510 obj/magick/*.lo -lMagick
su -c"make install"

Knappe, aber ausreichende Dokumentation

Die Programme (ein Jar und eine dynamische Bibliothek) landen in »/usr/ local/lib«. Ein »make javadoc« generiert und installiert die Dokumentation des Java-API unter »/usr/local/doc/javadoc«. Sie enthält im Wesentlichen eine Übersicht darüber, welche Methoden mit welchen Parametern aufgerufen werden müssen. Viel mehr ist auch nicht erforderlich, da das API sauber und einfach strukturiert und wenig mehr als ein Wrapper für verschiedene Structs und Funktionen auf C-Ebene ist. Ein Blick in die C-API[2], meist auch als Teil von Image Magick lokal installiert, klärt eventuell offene Fragen.

Drei kleine Beispiele sollen zeigen, wie einfach JMagick anzuwenden ist: für die Ausgabe von Bildinformationen, das Anzeigen sowie das Bearbeiten von Bildern. Die volle Mächtigkeit des Toolkits erschließt ein Blick in »man ImageMagick«. Was dort beschrieben ist, sollte auch mit Java funktionieren. Das erste Beispielprogramm (Listing 1) gibt zu allen als Argumente übergebenen Dateien verschiedene Informationen aus (siehe Abbildung 1).

Abbildung 1: Deskriptive Informationen zur Grafikdatei, ausgegeben mit JMagick (Listing 1).

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • ImageMagick: Entfernter Angreifer kann Befehle ausführen
  • Sicherheitslücke in ImageMagick

    Die Bildbearbeitungssoftware ImageMagick liegt nicht nur vielen Linux-Distributionen bei, sie kommt auch auf Webservern zum Einsatz. Jetzt wurde eine dramatische Sicherheitslücke entdeckt. Ein Update von ImageMagick steht jedoch noch aus.

  • Sicherheitslücken in Image Magick geschlossen

    In der freien Bildbearbeitungssoftware Image Magick sind vier Fehler aufgetaucht, die in der Summe von mehreren Sicherheitsdienstleistern als hoch kritisch eingestuft werden. Eine neue Version schafft Abhilfe.

  • Boinc

    Forschungsprojekte wie Seti@home haben es vorgemacht: Das freie Framework Boinc tranchiert aufwändige Rechenaufgaben zu handlichen Arbeitspaketen, passend für viele einzelne Computer. Dieser Artikel zeigt, wie man eine verteilte Anwendung für Boinc selbst schreibt.

  • Bildkorrekturen

    Niemand wird Gimp mit Java neu erfinden wollen. Trotzdem: Es gibt eine ganze Reihe von Java-Anwendungen, in denen die Darstellung und Bearbeitung von Bildern eine wichtige Rolle spielen. APIs wie Java 2D, Image IO und JAI setzen solche Applikationen ins Bild.

comments powered by Disqus

Ausgabe 10/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.