ImageMagick logo

ImageMagick unter Linux

Meiner Ansicht nach sehr unterschätzt wird ImageMagick, eine Sammlung von Werkzeugen zur Konvertierung und Bearbeitung von Grafiken, die für die wichtigsten Betriebssysteme – darunter auch Linux – verfügbar ist. Aktuell ist ImageMagick 7.1.2-0. Im Folgenden möchte ich ein paar Beispiele für den Einsatz dieser Software vorstellen. Dabei ist zu beachten, dass ImageMagick generell aus einer Shell bzw. einem Script heraus aufgerufen wird. Es gibt zwar auch eine Version mit GUI (grafischer Benutzeroberfläche), aber die unterstützt nur einen wirklich rudimentären Teil der Befehle. Aufrufbar mittels display aus einer Shell heraus, und dann einmal auf das Logo klicken.

Konvertieren

Eine Stärke von ImageMagick (im Folgenden IM) ist das Konvertieren von einem Grafikformat in ein anderes. Dabei werden über hundert Grafikformate (u. a. auch PDF) unterstützt. Wichtig sind die Unterschiede zwischen dem teilweise noch gebräuchlichen IM 6 und dem aktuellen IM 7. Wenn man wie in den folgenden Beispielen eine Grafik konvertieren möchte, lautet der Befehl bei IM 6 convert, bei IM 7 dagegen magick. Die installierte Version von IM erfahrt ihr, wenn ihr

convert -version

eingebt. convert funktioniert auch unter IM 7 noch. Dasselbe gilt auch für die anderen Beispiele für IM 6. Auch hier müsste convert auch bei IM 7 funktionieren; magick führt dagegen bei IM 6 zu einer Fehlermeldung.


Ein einfaches Beispiel (IM 6) für eine Konvertierung:

convert [Beispielgrafik].png [Beispielgrafik].jpg


konvertiert ein PNG in ein JPG, wobei die Farbtiefe auf 24 bit heruntergerechnet wird, weil JPG nicht mehr unterstützt. Wenn man jedoch magick⁣benutzt, kommt bei IM 6 eine Fehlermeldung:

Der Befehl 'magick' wurde nicht gefunden ...

Etwas komplexer – ebenfalls für IM 6 – ist

convert [Beispielgrafik].png -density 300 -depth 8 -colorspace sRGB [Beispielgrafik].jpg


Hier steht -density für den dpi-Wert (hier: 300)‚ -depth für die Farbtiefe (hier: 8 bit/Kanal) und -colorspace für den Farbraum (hier: sRGB). Das Ergebnis kann man sich mittels

display [Beispielgrafik].jpg


anschauen. Hat bei der Konvertierung etwas nicht geklappt, dann erscheint das IM-Logo mit dem Zauberer. Durch einmaliges Klicken auf dieses Logo ruft man das GUI von IM auf. Dann kann man mittels File > Open die betreffende Grafik öffnen und so ggf. feststellen, wo der Fehler liegt.

Komplexere Farbverläufe

Mittels IM können Farbverläufe generiert werden, die man mit dem Gimp a) nur sehr schwer bzw. b) gar nicht hinbekommt.

Ein nicht zu komplexes Beispiel:

convert -size 625x625 xc: +size xc:red xc:yellow -colorspace RGB \
          -fx 'ar=hypot( i/w-.8, j/h-.3 )*4;
               br=hypot( i/w-.3, j/h-.7 )*4;
               u[1]*br/(ar+br) + u[2]*ar/(ar+br)' \
          -colorspace RGB gradient_dist_ratio.png

Und das Ergebnis:

Okay, diesen Verlauf kann man auch mit der Option Multiplizieren im Gimp erzeugen. Da dieses Beispiel nicht übermäßig komplex ist, rate ich dazu, sich ergänzend einmal die Beispiele auf der IM-Website anzuschauen und etwas herumzuprobieren. So bekommt man auf die Dauer doch ein Gefühl dafür, wozu die einzelnen Parameter da sind.

An dieser Stelle noch ein Wort zur IM-Homepage, die leider nur auf Englisch verfügbar ist. Auch die Kommandos sind komplett auf Englisch. Ich weiß da für Leute, die nicht so gut Englisch können, leider keine Lösung – sorry! Auch über Google habe ich keine deutschsprachige Version gefunden. Es gibt aber im deutschsprachigen LinuxWiki eine Seite zu ImageMagick, wo ein paar grundlegende Befehle (Linux-Syntax; d. h. / etc.) erklärt werden.

Scans optimieren

Hier ein Scan mit einem lästigen gelblichen Farbstich. Im Gimp oder einem anderen Bildbearbeitungsprogramm lässt sich dieser Farbstich nur sehr unvollkommen bzw. nur sehr zeitaufwendig (wenn überhaupt) entfernen. Denkbar wäre evtl. ein entsprechend komplexes Script-Fu [1].

Mittels IM kann dieser Farbstich mit nur einer Codezeile entfernt werden:

convert test_scan_crevalcore.jpg \( +clone -blur 0x3 \) +swap -compose divide -composite Ergebnis.png

Noch nicht ganz optimal, aber die Richtung stimmt. Die restlichen gelblichen Bereiche können nun mit dem Gimp oder einem anderen Bildbearbeitungsprogramm entfernt werden.

Und hier der Scan nach der Bearbeitung im Gimp. Ich habe die gelblichen Reste mit dem Radierer [Umschalt]+[E] entfernt, wobei ich den Radius des Pinsels über das Fenster [2] Werkzeugeinstellungen jeweils angepasst habe. Dann habe ich den weißen Hintergrund mit Nach Farbe auswählen [Umschalt]+[O] selektiert und diese Auswahl invertiert [Strg]+[I]. Anschließend habe ich über Farben > Belichtung den Schwarzwert zweimal bis zum Anschlag erhöht und zum Schluss die Grafik in den Modus Graustufen konvertiert.

[1] Script-Fus sind, wie der Name schon sagt, im Gimp ausführbare Scripts, die auf der Programmiersprache Scheme basieren.

Ein Beispiel:

Zu finden sind Script-Fus z. B. unter Hilfe > Plug-in-Browser.

[2] Ich benutze den Gimp im 3-Fenster-Modus. Benutzer, die den Einfenster-Modus aktiviert haben, müssen analog verfahren.

Teilt den Beitrag, falls ihr mögt

10 Kommentare

  1. Ich hatte geschrieben:

    Okay, diesen Verlauf kann man auch mit der Option “Multiplizieren im Gimp erzeugen.

    Das ist im Prinzip richtig, d. h., es geht, aber es braucht wesentlich mehr Zeit als in ImageMagick (und das ist noch ein relativ einfacher Verlauf). Der Schlüssel sind Ebeneneffekte wie eben Multiplizieren.
    Claus

    0
      1. Wenn ich das recht in Erinnerung habe, lassen sich Kommentare für 10 Minuten editieren. Es ergibt ja keinen Sinn, das Editieren auch nach Stunden oder Tagen zu erlauben, weil dann auf eventuelle Antworten reagiert werden könnte. Stefan weiß da bestimmt Genaueres.

        0
      2. @Moonbase59:

        Oh, sorry, bei mir als Autor kommt auch ein Link “Bearbeiten”. Hast Du es mal mit * oder ** versucht? In WhatsApp oder Discord klappt das. Ich muß mich mal mit einem anderen Rechner einloggen; vielleicht kann ich dann mehr herausfinden.

        Claus

        0

Kommentar hinterlassen