Bild für Bild
Das Paket »ImageMagick« ist eine umfangreiche Sammlung von Tools, um Bilder zu bearbeiten. Dabei handelt es sich, anders als bei vielen anderen Programmen, zunächst einmal um schlichte Shell-Befehle. Das öffnet Tür und Tor für die Einbindung in Skripte und alle möglichen anderen Anwendungen.
von Martin Steigerwald
Das Toolset »ImageMagick« gibt es für viele unterschiedliche Plattformen wie Linux, Mac, Windows oder VMS. Vor kurzem portierte Diego Casorran Version 5.5.5 von ImageMagick für Amiga.
ImageMagick besteht aus mehreren über die Shell ansprechbaren Programmen (s. »Die Tools im Über-blick«). Die Amiga-Version enthält alle Tools, bis auf »display«, zum Anzeigen von Bilder und »import« zum Erstellen von Screenshots, die auf Funktionen des X-Servers zurückgreifen, sowie »animate« zum Erstellen von Animationen. Auch die unter Linux verfügbare X11-Oberfläche zu ImageMagick ist in der Amiga-Version nicht enthalten.
Mit den verbleibenden Tools lässt sich jedoch schon jede Menge anfangen. Sie können ein Bild in ein anderes Format umwandeln, es rotieren, schärfen, die Anzahl der verwendeten Farben reduzieren, Filter anwenden oder Spezialeffekte hinzufügen (s. »Unendliche Möglichkeiten«). Sie können mehrere Bilder miteinander kombinieren oder mehrere Bilder als Thumbnails in einer Art Bildkatalog anordnen. Sie können Text oder geometrische Formen auf ein Bild zeichnen, ein Bild mit einem dekorativen Rand versehen oder ein Bild fürs Web mit transparentem Hintergrund versehen.
|
ImageMagick unterstützt 87 Bild- und Animationsformate, darunter JPEG, PNG, BMP und TIFF. Das Amiga-ILBM-IFF-Format wird in der Grundkonfiguration nicht unterstützt. Teilweise benötigt es zusätzliche Programme, die möglicherweise nicht alle für AmigaOS portiert sind. Für das Zeichnen von Text benötigt ImageMagick »GhostScript«. Der erste Teil des ImageMagick-Workshops geht auf die grundlegende Arbeitsweise von ImageMagick ein. Alle gezeigten Beispiele funktionieren ohne Zusatzprogramme. Durch ihre Zugänglichkeit über die Befehlszeile lassen sich die ImageMagick-Programme in Skripten und in nahezu jeder beliebigen Anwendung, die Shell- oder ARexx-Befehle oder -Skripte ausführen kann, verwenden. So können Sie ImageMagick z.B. in »Directory Opus Magellan« einbinden oder auch via ARexx in die Workbench von AmigaOS 3.9 oder 3.5.
»ImageConvert«, ein ARexx-Skript um Bilder umzuwandeln, liegt bereits in einer Version vor, die neben »Personal Paint«, »ArtEffect« und »Photogenics 2« nun auch ImageMagick unterstützt.
Neben der Befehlszeilen-Schnittstelle gibt es für ImageMagick noch eine ganze Reihe anderer Anwender-Schnittstellen: ImageMagick lässt sich damit über Perl, C++, C, Python, PHP und Java ansprechen. Der Amiga-Port kommt komplett mit der PerlMagick-Umgebung. Damit lässt sich ImageMagick, ähnlich wie mit der PHPMagick-Umgebung, über ein Perl-CGI- oder ein PHP-Skript direkt von einer Webseite aus nutzen. Das sollte bei entsprechender Apache-Installation durchaus auch auf dem Amiga möglich sein. Dieser Artikel beschränkt sich allerdings auf die Nutzung von ImageMagick über die Befehlszeilen-Schnittstelle.
Erste Schritte
Die Installation von ImageMagick gestaltet sich relativ einfach. Entpacken Sie
das knapp 14 MByte große Archiv unter AmigaOS 3.9 verwenden Sie
dafür einfach »UnArc« und sorgen Sie dafür, dass
die Programme in der utilities-Schublade von ImageMagick über die Shell
zugänglich sind. Dazu können Sie sie zum Beispiel nach »C:«
kopieren oder aber Sie fügen betreffenden Pfad der Liste der System-Suchpfade
hinzu:
Path ADD <Ihr-Verzeichnis>/ImageMagick-5.5.5/
Damit diese Änderung überall und auch nach einem Neustart zur Verfügung steht, schreiben Sie diesen Befehl einfach in die »S:User-Startup«-Datei. Damit ImageMagick funktioniert, muss auch die »ixemul.library« des GeekGadgets-Projektes installiert sein. Diese Bibliothek stellt eine Unix-Emulationsschicht zur Verfügung, die es erleichtert Unix-Programme auf den Amiga zu portieren. Sie können einen mehr oder weniger großen Anteil des GeekGadgets-Projektes installieren oder einfach nur die ixemul.library nach LIBS: kopieren.
Im Distributionsarchiv des Amiga-Ports von ImageMagick fehlen einige Einstellungs-Dateien
für ImageMagick, deren Dateiname alle auf »*.mgk« enden. Diese
hat Diego Casorran auf unseren Hinweis hin nachträglich in ein Extra-Archiv
gepackt. Sie liegen im Unix-Verzeichnis-Baum üblicherweise im Verzeichnis
/usr/lib/ImageMagick-5. 5.5-Q16/. Der Amigapfad
hierfür lautet:
usr:lib/ImageMagick-5.5.5-Q16/ (s.»Unix-Pfade«).
Wenn Sie GeekGadgets installiert haben oder in Ihrem System aus anderen Gründen bereits eine usr:-Zuweisung existiert, dann können Sie das Archiv mit den Einstellungsdateien einfach nach usr: entpacken. Benennen Sie dann einfach das entpackte Verzeichnis usr-lib nach lib: um, damit ImageMagick die Dateien auch finden kann.
Wenn auf ihrem System keine usr:-Zuweisung existiert, entpacken Sie das Archiv einfach in das ImageMagick-Verzeichnis, benennen Sie das entpackte Verzeichnis usr-lib nach lib um und fügen Sie folgenden Befehl in Ihre user-startup-Datei ein:
Assign usr: <Ihr-Verzeichnis>/ImageMagick-5.5.5/
Damit ist die Installation von ImageMagick abgeschlossen. Wenn Sie möchten, können Sie ImageMagick über die Einstellungsdateien nach ihren Wünschen konfigurieren. Bedenken Sie dabei, dass in der Amiga-Version möglicherweise nicht alle Optionen funktionieren. Die Konfigurationsdateien sind alle im XML-Format. Sie können Sie mit einem beliebigen Texteditor ändern.
»colors.mgk« enthält Definitionen zu vordefinierten Farben. »delegates.mgk« enthält Informationen, an welche Programme ImageMagick bestimmte Aufgaben delegieren kann. So unterstützt ImageMagick zum Beispiel die Formate MPEG-1 und MPEG-2 nur über externe De- und Encoder. In »log.mgk« können Sie angeben, wie ImageMagick seine Aktivitäten protokollieren soll. Aus »magic. mgk« entnimmt ImageMagick, wie es verschiedene Bildformate erkennen kann. »type.mgk«, welches »type-ghostscript. mgk« einbindet, enthält Informationen über unterstützte Zeichensätze zum Erstellen von Texten. Soweit kurz zu den Konfigurationsmöglichkeiten.
Um die folgenden grundlegenden Beispiele nachzuvollziehen, müssen Sie an den Konfigurationsdateien nichts ändern. Bedenken Sie, dass ImageMagick bei manchen Operationen, wie z.B. dem Erstellen eines Bildkataloges aus 70 Bildern gerne auch schon mal 40 MByte und mehr an Arbeitsspeicher nutzt. ImageMagick scheint nicht speziell an Betriebssysteme angepasst zu sein, die keinen virtuellen Speicher unterstützen, und so holt es sich einfach, was es braucht. Erschrecken Sie nicht, wenn Sie sich die Dateigrößen der einzelnen Befehle anschauen. Die ImageMagick-Programme sind beim Amiga-Port statisch gelinkt. Das bedeutet, dass alle Bibliotheken (s. »Shared objects«), die ImageMagick verwendet, direkt an jede ausführbare Datei angefügt werden. Insgesamt ist ImageMagick eher etwas für gut ausgerüstete Amigas! Selbst ein 68060-Prozessor lässt sich mit ImageMagick ohne weiteres länger beschäftigen. Nun, wenn Sie das alles nicht abschreckt, testen Sie ImageMagick doch einfach mal!
identify /Bilder/Weltraum/Earthcol.jpg
Der »identify«-Befehl macht nichts anderes als nähere Informationen zu der angegebenen Bilddatei auszugeben:
/Bilder/Weltraum/Earthcol.jpg JPEG 720x360+0+0 DirectClass 8-bit 85.1k 0.040u 0:01
|
Beachten Sie dabei die Unix-Schreibweise beim Dateipfad (s. »Unix-Pfade«). Möchten Sie noch mehr wissen? Dann verwenden Sie »identify« mit der Option »-verbose« (s. »Genau untersucht«):
identify -verbose /Bilder/Weltraum/Earthcol.jpg
Die darauf folgende englischsprachige Ausgabe erklärt Ihnen auch die Bedeutung einiger Angaben aus der einzeiligen Ausgabe von oben. So ist »85.1k« zum Beispiel die Größe der Bilddatei. Mehr über »identify« und alle seine Optionen erfahren Sie entweder in der nicht für Amiga-Textanzeiger angepassten man-Page zu »identify«, »identify.1«, oder aber in der HTML-Dokumentation zu ImageMagick, die Sie aufrufen können, indem Sie die Datei »ImageMagick. html« mit einem Browser anzeigen. Diese englischsprachige Dokumentation beschreibt jedes einzelne ImageMagick-Programm genau mit Beispielen und allen Optionen (s. »Informativ«).
Bilder
wandeln, Bildkataloge und mehr
Zum Umwandeln von Bildern können Sie z.B. das »convert«-Programm
verwenden. Um ein PNG-Bild beispielsweise in ein JPEG-Bild umzuwandeln verwenden
Sie folgenden Befehlsaufruf:
convert apfel.jpg apfel.png
Wenn Sie stattdessen aus einem JPEG-Bild ein auf 120 x 120 Pixel verkleinertes JPEG-Bild als Miniaturansicht erzeugen wollen, schreiben Sie stattdessen:
convert -size 120x120 apfel-gross.jpg -resize apfel-klein.jpg
Die doppelte Angabe der Größe macht hier in der Tat Sinn. »-resize« gibt die Größe des Zielbildes an und »-size« sagt der JPEG-Bild-Laderoutine (dem JPEG -Decoder), dass das Quell-Bild auf 120 x 120 Pixel verkleinert wird. Dadurch kann die Laderoutine schneller arbeiten, indem Sie das JPEG-Bild gar nicht in der vollen Auflösung dekodiert.
Wenn Sie wissen möchten, welche Bildformate ImageMagick unterstützt, dann geben Sie folgenden Befehlsaufruf ein:
|
convert -list format
»R« steht für Lese-Unterstützung, »W« für Schreib-Unterstützung. Wollen Sie stattdessen für alle PNG-Bilder im aktuellen Verzeichnis Miniansichten für einen Bildkatalog erstellen, verwenden Sie statt »convert« den Befehl »montage« (s. »Katalogisiert«):
montage -geometry 120x120+10+10 *.png bildkatalog.png
Damit erstellt ImageMagick aus allen Dateien im aktuellen Verzeichnis mit der Endung »png« einen Bildkatalog. Jedes einzelne Bild wird dabei auf eine Größe von 120 x 120 Pixel verkleinert und im Abstand von 10 Pixeln voneinander platziert. Das Ergebnis wird in die Datei »bildkatalog. png« geschrieben. Dabei platziert ImageMagick standardmäßig maximal 20 Miniaturansichten, 5 Reihen zu je 4 Bildern, in ein Katalogbild. Wenn Sie mehr als 20 Bilder einspeisen, werden dementsprechend mehrere Katalogbilder erstellt. Mit der Option »-tile 3x2« werden stattdessen 3 Reihen à 2 Bilder erzeugt. Statt dem Dateimuster »*.png« können Sie auch mehrere mit Leerzeichen getrennte Dateinamen angeben:
montage -geometry 120x120+10+10 Apfel.png Banane.png Birne.png Mango.png Obst.png
Der letzte Dateiname ist dann der Name für den Bildkatalog. »convert« kann ebenfalls mehrere Bilder auf einmal bearbeiten. Dabei nimmt es den Zieldateinamen als Grundlage und nummeriert alle erstellten Bilder selber durch.
convert *.jpg test.png
Manche Bildformate wie das ImageMagick-»miff«-Format enthält mehrere Bilder in einer Datei. Wird ein solches Format verwendet, packt ImageMagick alle Quellbilder in eine Zieldatei.
Das »miff«-Format können Sie immer dann verwenden, wenn Sie sicher stellen wollen, dass keine von ImageMagick unterstützten Merkmale verloren gehen. Sie können auch gleich mehrere Bilder in einer einzigen MIFF-Datei archivieren:
convert *.png test.miff
packt alle PNG-Bilder im aktuellen Verzeichnis in die Datei »test.miff«. Auspacken können Sie ein solches Bildarchiv wieder mit:
convert test.miff *.png
Allerdings gehen dabei die ursprünglichen Dateinamen verloren. Vorsicht auch bei verlustbehafteten Formaten wie JPEG. Da geht bei jedem Auspacken Bildinformation verloren!
Für das Umwandeln mehrere Bilder in ebensoviele Zielbilder empfiehlt es sich, statt »convert« das ImageMagick-Programm »mogrify« zu verwenden. Dieses wendet verschiedene Bildbearbeitungs-Operationen auf ein oder mehrere Bilder an. So können Sie zum Beispiel leicht alle GIF-Bilder in einem Verzeichnis in PNG-Bilder umwandeln.
|
mogrify -format png *.gif
Oder Sie reduzieren die Farbzahl mehrerer PNGs:
mogrify -colors 16 *.png
Beachten Sie, dass hierbei alle Ausgangsbilder überschrieben werden. »mogrify« erzeugt nur dann neue Bilder, wenn sich durch eine Formatänderung neue Dateinamen ergeben. Um alle Bilder in einem Verzeichnis mit Rücksicht auf auf das Seitenverhältnis auf »640x480« zu skalieren können Sie
mogrify -resize 640x480 *
verwenden. Wenn Sie an die Größenangabe ein »!« daranhängen, wird ohne Berücksichtigung des Seitenverhältnisses exakt auf 640 x 480 skaliert. Mehrere JPEG-Bilder Ihrer Digitalkamera können Sie mit
mogrify -rotate 90 *.jpg
um 90 Grad im Uhrzeigersinn rotieren lassen.
Damit soll der erste Teil des ImageMagick-Workshops erst einmal enden. Die Befehle
»convert«, »montage« und »mogrify« bieten
ebenso wie »identify« jede Menge weitere Optionen zum Probieren.
lb
© 2003 All Rights Reserved. Alle Rechte vorbehalten Franzis'
Verlag GmbH Kommentare, Fragen, Korrekturen und Kritik bitte an Webmaster
AMIGA schicken.
Zuletzt aktualisiert am 9. 6. 2003.