Automatisieren Sie Ihren visuellen Workflow mit ImageMagick und Stapelverarbeitung.

  • ImageMagick bietet flexible Installationsmöglichkeiten unter Linux, macOS, Windows und iOS, sowohl mit Binärdateien als auch durch Kompilierung aus dem Quellcode.
  • Seine Stärke liegt in der Stapelverarbeitungsautomatisierung über die Kommandozeile, Bash-Skripte und Schnittstellen für mehrere Sprachen.
  • Die Sicherheitsrichtlinien und die Q8/Q16 HDRI-Konfiguration ermöglichen ein ausgewogenes Verhältnis von Schutz, Genauigkeit und Leistung.
  • Tools wie das Magick-Paket für R und Community-Skripte erweitern die Bildbearbeitungs-Workflows erheblich.

ImageMagick

Wer täglich mit Bildern arbeitet und Aufgaben automatisieren möchte, für den ist ImageMagick ein unverzichtbares Werkzeug, dessen Beherrschung sich lohnt. Auch wenn es anfangs etwas einschüchternd wirken mag (insbesondere aufgrund der Kommandozeilen-Oberfläche), wird es, sobald man die Funktionsweise mit Batch-Dateien verstanden hat, zu einem wahren Schweizer Taschenmesser für die umfangreiche Bildverarbeitung.

In diesem Artikel erfahren Sie, wie Sie ImageMagick auf verschiedenen Betriebssystemen installieren und vor allem, wie Sie es für die Stapelverarbeitung von Bildern einsetzen : Formate konvertieren, Hunderte von Fotos gleichzeitig skalieren, Animationen erstellen, mit Skripten arbeiten und es in andere Sprachen wie R, PHP, .NET oder sogar iOS integrieren. All dies basiert auf der offiziellen Dokumentation, praktischen Beispielen und Best Practices der Community.

Was ist ImageMagick und warum ist es so nützlich für die Stapelverarbeitung?

ImageMagick ist eine kostenlose Open-Source-Software-Suite, die sich auf die Bearbeitung von Bitmap-Bildern spezialisiert hat. Sie ermöglicht das Erstellen, Bearbeiten, Kombinieren und Konvertieren von Bildern in Dutzenden verschiedener Formate: JPEG, PNG, GIF, TIFF, PDF, HEIC, WebP, Ultra HDR und viele mehr, je nachdem, wie die Bilder kompiliert werden.

ImageMagicks größte Stärke bei der Stapelverarbeitung liegt in der fortschrittlichen Skript- und Automatisierungsunterstützung . Anstatt jedes Bild einzeln in einem Grafikeditor anzuklicken, können Sie einen Befehl oder ein Skript ausführen, das Hunderte oder Tausende von Bildern verarbeitet und dieselbe Abfolge von Operationen anwendet: Formatkonvertierung, Größenänderung, Zuschneiden, Textanmerkungen, Filter usw.

Neben der Kommandozeile bietet ImageMagick APIs für zahlreiche Programmiersprachen (C, C++, Perl, R, .NET, PHP u. a.), wodurch die Integration in Webanwendungen, interne Tools, Datenpipelines oder serverseitige Skripte vereinfacht wird. ImageMagick ist in C geschrieben und läuft unter Linux, Windows und macOS; zudem sind spezielle iOS-Versionen verfügbar.

Dieser automatisierbare Ansatz macht ihn weit verbreitet in der Webentwicklung, im Grafikdesign, in der Videoproduktion, in den Naturwissenschaften, der Medizin, der Astronomie und überall dort, wo große Mengen an Bildern systematisch verarbeitet werden müssen.

ImageMagick

Installation von ImageMagick auf verschiedenen Betriebssystemen

Linux-Installation: Binärdateien, RPM und Kompilierung aus dem Quellcode

Unter Linux stehen Ihnen verschiedene Installationsmöglichkeiten für ImageMagick zur Verfügung, je nachdem, ob Sie vorkompilierte Pakete bevorzugen oder ImageMagick aus dem Quellcode kompilieren möchten . Die offiziellen Binärdateien decken diverse Linux-Distributionen ab. Sollte Ihre Distribution nicht aufgeführt sein, können Sie ImageMagick jederzeit manuell kompilieren.

Auf RPM-basierten Systemen (z. B. vielen Enterprise-Distributionen) lässt sich ImageMagick mithilfe von Auto-Installer-Paketen installieren . Ein typisches Beispiel wäre:

rpm -Uvh ImageMagick-7.1.2-13.x86_64.rpm

Zusätzlich zum Hauptpaket benötigen Sie die zugehörigen Bibliotheken , damit das Programm ordnungsgemäß funktioniert:

rpm -Uvh ImageMagick-libs-7.1.2-13.x86_64.rpm

Falls der Paketmanager nicht erfüllte Abhängigkeiten meldet, besteht die übliche Lösung darin, diese aus dem EPEL-Repository oder anderen offiziellen Repositories Ihrer Distribution zu installieren. Sobald dies behoben ist, kann ImageMagick mit Batchdateien über das Terminal verwendet werden.

Wenn Sie eine allgemeinere Vorgehensweise bevorzugen, können Sie das komprimierte Paket herunterladen, ein Installationsverzeichnis erstellen und die Binärdateien dort extrahieren . Zum Beispiel:

cd $ HOME
tar xvzf ImageMagick.tar.gz

Nach dem Extrahieren empfiehlt es sich, die Umgebungsvariable MAGICK_HOME auf das Verzeichnis zu setzen, in dem die Dateien bereitgestellt wurden, zum Beispiel:

export MAGICK_HOME=»$HOME/ImageMagick-7.1.2″

Um Befehle ausführen zu können, ohne den vollständigen Pfad angeben zu müssen, fügen Sie das ImageMagick- Unterverzeichnis „ bin“ zu Ihrer PATH-Umgebungsvariablen hinzu:

export PATH=»$MAGICK_HOME/bin:$PATH»

Auf Linux- und Solaris-Rechnern ist es außerdem wichtig, den Bibliotheksordner in LD_LIBRARY_PATH aufzunehmen , damit das System die dynamischen Bibliotheken finden kann:

export LD_LIBRARY_PATH=»${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}$MAGICK_HOME/lib»

Sobald Sie diese Schritte abgeschlossen haben, können Sie schnell überprüfen, ob alles funktioniert, indem Sie eine Reihe grundlegender Befehle ausführen, wie zum Beispiel:

Magie-Logo: logo.gif
identify logo.gif
display logo.gif

Wenn Sie das bekannte fehlerfreie Testlogo sehen, haben Sie ImageMagick in Ihrer Linux-Umgebung installiert und sind bereit für die Stapelverarbeitung von Bildern.

macOS-Installation: Homebrew und vorkompilierte Binärdateien

Unter macOS lässt sich ImageMagick am einfachsten über Homebrew , den beliebten Paketmanager, installieren. Führen Sie dazu einfach folgenden Befehl im Terminal aus:

Brew install ImageMagick

ImageMagick verwendet für einige Arbeitsabläufe Ghostscript-Schriftarten, daher ist es üblich, auch Folgendes zu installieren:

brew install ghostscript

Der Befehl `brew` lädt die Binärdatei mit vielen aktivierten Bibliotheken (JPEG, PNG, FreeType usw.). Homebrew bietet keine so umfangreichen Konfigurationsmöglichkeiten mehr wie früher. Benötigen Sie spezielle Optionen (z. B. librsvg-Unterstützung für erweiterte SVG-Grafik), können Sie die offizielle ImageMagick-Distribution für macOS herunterladen, indem Sie das vorkompilierte Archiv (Tarball) verwenden.

In diesem Fall wäre der typische Ablauf ähnlich wie bei Linux: Sie wählen ein Verzeichnis für das Paket, beispielsweise Ihr Home-Verzeichnis:

cd $ HOME

Extrahieren Sie anschließend den Inhalt der heruntergeladenen komprimierten Datei:

tar xvzf ImageMagick-x86_64-apple-darwin20.1.0.tar.gz

Wie zuvor definieren Sie MAGICK_HOME als Verweis auf das Verzeichnis, in dem das Paket entpackt wurde:

export MAGICK_HOME=»$HOME/ImageMagick-7.1.2″

Aktualisieren Sie die PATH-Umgebungsvariable, damit Sie nicht mehr den vollständigen Pfad zu den Binärdateien angeben müssen:

export PATH=»$MAGICK_HOME/bin:$PATH»

Und unter macOS müssen Sie zusätzlich DYLD_LIBRARY_PATH für dynamische Bibliotheken konfigurieren:

export DYLD_LIBRARY_PATH=»$MAGICK_HOME/lib/»

Sobald dies abgeschlossen ist, können Sie dieselbe Testsequenz ausführen:

Magie-Logo: logo.gif
identify logo.gif
display logo.gif

Beachten Sie, dass das Anzeigeprogramm einen auf Ihrem Mac installierten X11-Server benötigt. Falls Sie keinen haben, ist dieser auf der Original-macOS-DVD enthalten. Alternativ können Sie Programme wie XQuartz verwenden. Denken Sie in diesem Zusammenhang auch daran, Folgendes zu definieren:

export DISPLAY =: 0

Um zu vermeiden, dass Sie diese "Exports" jedes Mal wiederholen müssen, wenn Sie das Terminal öffnen, ist es am praktischsten, sie am Ende Ihrer .profile-Datei oder einer entsprechenden Datei (z. B. .zshrc, wenn Sie zsh verwenden) hinzuzufügen.

iOS-Installation: Spezielle Builds und statische Bibliotheken

Wenn Sie ImageMagick in eine iOS-App integrieren möchten, gibt es eine von der Community gepflegte Version, die Bibliotheken und Header zur Verwendung in Xcode bereitstellt . Sie finden dort in der Regel zwei komprimierte Pakete:

  • iOSMagick-VERSION-libs.zip: Enthält kompilierte Bibliotheken und Header, die zum Kompilieren von ImageMagick verwendet werden; es ist das Paket, das die meisten Entwickler üblicherweise benötigen.
  • iOSMagick-VERSION.zip: ein weiteres Paket mit den restlichen Komponenten.

Ein Skript zum Kompilieren von ImageMagick für iOS wird ebenfalls bereitgestellt , zusammen mit dem Simulator als statischer Bibliothek, die Sie Ihrem Projekt hinzufügen können. Die Verwendung ist denkbar einfach:

./imagemagick_compile.sh VERSION

Dabei ist VERSION die spezifische Version, die kompiliert werden soll, beispielsweise 7.1.2-13 oder sogar svn, falls Sie mit Entwicklungscode arbeiten. Nach erfolgreichem Abschluss des Skripts wird auf dem Desktop des Benutzers ein Ordner namens IMPORT_ME erstellt , der alle für den direkten Import in Xcode benötigten Dateien enthält.

Diese Version bietet Unterstützung für Formate wie PNG, JPEG und TIFF , die bei mobilen Bilddatenströmen sehr verbreitet sind. Damit das Projekt korrekt verknüpft wird, müssen Sie die folgenden Elemente im Xcode-Build-Tab konfigurieren:

  • Andere Linker-Flags mit Werten wie -lMagickCore-Q16 -lMagickWand-Q16 -ljpeg -lpng -lbz2 -lz.
  • Header-Suchpfade zielen auf $(SRCROOT) und als rekursiv gekennzeichnet.
  • Bibliothekssuchpfade auch darauf hinweisen $(SRCROOT) mit rekursiver Suche.

Im Bereich der erweiterten Einstellungen können Sie einen benutzerdefinierten Build-Parameter hinzufügen, beispielsweise den Schlüssel. ANDERE_CFLAGS mit dem Wert -Dmacintosh=1 um bestimmte innere Verhaltensweisen anzupassen.

Einige Repositories bieten ein iOS-Beispielprojekt an , das zwar nicht immer auf dem neuesten Stand ist, aber dennoch nützlich ist, um alle Optionen von Xcode aufeinander abgestimmt zu sehen und anhand von ImageMagick-Anwendungsbeispielen in einer nativen App zu üben.

Windows-Installation: Grafischer Installer und Paketmanager

ImageMagick läuft unter Windows 10 (x86, x64, arm64) und höher sowie unter Windows Server 2012 und höher. Es läuft zwar auch auf weniger leistungsstarken Rechnern flüssig, jedoch werden mindestens 512 MB RAM empfohlen. Je leistungsstärker die Hardware, desto besser kann ImageMagick die Vorteile der Mehrkern-Parallelverarbeitung für die Stapelverarbeitung nutzen.

Die Standardinstallationsmethode besteht darin, den selbstextrahierenden Installer von der offiziellen Website herunterzuladen. Wählen Sie einfach die passende Version (32 oder 64 Bit, Q8 oder Q16, mit oder ohne DLL) und doppelklicken Sie darauf: Der Installationsassistent erledigt den Rest und stellt Ihnen einige Konfigurationsfragen.

Versionen mit der Bezeichnung Q8 verarbeiten 8 Bit pro Farbkomponente (z. B. 8 Bit für den Rotkanal, 8 Bit für Grün usw.), während Q16- Versionen 16 Bit pro Kanal ermöglichen. Mit Q16 lassen sich hochauflösende Bilder verlustfrei lesen und schreiben, der Ressourcenverbrauch ist jedoch doppelt so hoch wie bei Q8.

Builds, deren Namen „dll“ enthalten , binden die Bibliotheken als dynamische Linkbibliotheken ein . Sofern Sie kein reines 32-Bit-System verwenden, wird im Allgemeinen die 64-Bit-Version mit DLL empfohlen , da sie ein sehr gutes Gleichgewicht zwischen Kompatibilität und Leistung bietet.

Neben dem grafischen Installationsprogramm können Sie ImageMagick auch mit Winget , dem modernen Windows-Paketmanager, installieren. Die neuesten Versionen werden mit dem erweiterten Installationsprogramm (Advanced Installer) bereitgestellt. Einige typische Befehle sind:

winget install ImageMagick.Q16-HDRI
winget install ImageMagick.Q16
winget install ImageMagick.Q8

Es gibt auch inoffizielle Pakete, die beispielsweise über Winget, Scoop und Chocolatey erhältlich sind:

winget install ImageMagick.ImageMagick
scoop install main/imagemagick
choco install imagemagick

Um zu überprüfen, ob alles korrekt installiert ist, öffnen Sie die Eingabeaufforderung und führen Sie folgenden Befehl aus:

Magie-Logo: logo.gif
magisches Logo identifizieren.gif

Sollten Fehler im Zusammenhang mit der Datei vcomp140.dll auftreten , lassen sich diese in der Regel durch die Installation des Visual C++ Redistributable Package für Ihre Windows-Version beheben. Wichtig: In der Windows-Konsole müssen Befehlspfade in doppelte Anführungszeichen gesetzt werden.

magick „e:/misimagenes/original.png“ „e:/misimagenes/converted.jpg“

Und wenn Sie Aufrufe aus VBScript generieren, müssen Sie die doppelten Anführungszeichen maskieren, was zu etwa folgendem Ergebnis führt:

Set objShell = wscript.createobject("wscript.shell")
objShell.Exec(«magick «»e:/myimages/original.png»» «»e:/myimages/converted.jpg»»»)

Nach der Validierung können Sie dann Windows-Batch-Skripte einrichten, die magick aufrufen , um ganze Ordner mit Bildern mit einem einzigen Doppelklick zu verarbeiten.

ImageMagick

Hauptmerkmale von ImageMagick für die Stapelverarbeitung

Das Herzstück von ImageMagick ist seine Kommandozeile ( magick , convert in älteren Versionen) und eine Vielzahl von Optionen für die automatisierte Verarbeitung . Zu den leistungsstärksten Funktionen für die Stapelverarbeitung gehören:

  • Unterstützung für Animations- und Bewegungseffekte.
  • Erweiterte Filter wie z. B. beidseitige Unschärfe Glätten unter Beibehaltung der Kanten.
  • Farbmanagement mit ICC-Profilen und Gammakorrektur.
  • Farbschwellenwert zur Erzeugung binärer Masken aus chromatischen Bereichen.
  • Intensive Verarbeitung aus dem Befehlszeile.
  • Bildkomposition (Übereinanderlegen eines Bildes an exakten Positionen).
  • Kennzeichnung von verbundenen Komponenten für die Regionsanalyse.
  • Berechnung konvexer Hüllen und minimaler Boxen, die Objekte umschließen.
  • Dekoration mit Rahmen und Bordüren.
  • Kanten- und Merkmalserkennung (Canny, Mean-Shift, Hough).
  • Direkte und inverse Fourier-Transformationen zur Frequenzanalyse.
  • Verteilter Pixel-Cache für sehr hohe Arbeitslasten.
  • Formen und Text direkt auf das Bild zeichnen.
  • Bildverschlüsselung und -entschlüsselung für sichere Streams.
  • Konvertierung zwischen Formaten (zum Beispiel von PNG zu JPEG (im Batch-Verfahren).
  • Komplexe geometrische Verzerrungen, einschließlich Perspektive und benutzerdefinierter Transformationen.
  • Unterstützung für OpenCL und heterogene Verarbeitung auf CPU und GPU.
  • HDR-Bilder (High Dynamic Range) mit Detailgenauigkeit in extremen Lichtern und Schatten.
  • Ecu Adaptive Histogramm-Equalisierung zur Verbesserung des Kontrasts.
  • Berechnung und Zwischenspeicherung von Bildern, Sequenzen, Videos und Metadaten.
  • Pixelrechner das mathematische Ausdrücke auf Kanäle anwendet.
  • Erzeugung von Gradienten mit unterschiedlichen Formen (linear, radial, elliptisch).
  • Detaillierte Angabe von Format, Größe, Farbraum und Metadaten.
  • Unterstützung für Videosequenzen und digitale Kinoformate.
  • Ich arbeite mit multispektralen Bildern, die bis zu Dutzende von Spektralbändern umfassen.
  • Rauschunterdrückung mit Spezialfiltern (Kuwahara, Mean-Shift usw.).
  • Wahrnehmungs-Hash um visuell ähnliche Bilder zu erkennen.
  • Klassische Spezialeffekte: Weichzeichnen, Fokussieren, Tönung, Schwellenwert usw.
  • Einfügen von Text und beschreibenden oder künstlerischen Kommentaren.
  • Multithreading-Unterstützung (OpenMP), um das Maximum aus Mehrkern-CPUs herauszuholen.
  • Größen-, Dreh-, Beschnitt-, Spiegel- und Begradigungstransformationen.
  • Transparenzmanagement und virtuelle Pixel (Koordinaten außerhalb des Bildes).

Wenn Sie diese Funktionen in einem gut strukturierten Skript oder Befehl kombinieren, können Sie alltägliche Aufgaben automatisieren , wie z. B. das Generieren von Miniaturansichten für eine Website, das Normalisieren von Größen vor dem Trainieren eines KI-Modells oder das Konvertieren von Stapeln von PDF-Dokumenten in Bilder.

Sicherheit, Richtlinien und Leistung in Produktionsumgebungen

Aufgrund seiner Leistungsfähigkeit kann ImageMagick auch eine Sicherheitslücke darstellen , wenn es auf Systemen, die Benutzerdateien empfangen (z. B. Bild-Uploads auf einer Website), nicht ausreichend geschützt ist. Daher empfehlen Entwickler, von Anfang an eine auf die jeweilige Umgebung zugeschnittene Sicherheitsrichtlinie zu definieren.

Die neuesten Versionen des 7er-Zweigs enthalten mehrere vordefinierte Richtlinienprofile – Offen, Eingeschränkt, Sicher und Websicher –, die festlegen, welche Operationen zulässig sind, welche Formate akzeptiert werden, Ressourcenbeschränkungen gelten usw. Sie können mit einem dieser Profile beginnen, es an Ihre Bedürfnisse anpassen und anschließend mit dem vom Projekt bereitgestellten Richtlinienprüfungstool validieren .

Wenn Sie hingegen von älteren Versionen kommen, gibt es eine ImageMagick "Legacy"-Website mit dem Zweig 6.9.13-38. Die offizielle Empfehlung lautet jedoch, auf Zweig 7 umzusteigen, der in Bezug auf Sicherheit, Befehlspipeline und Leistung ausgereifter ist.

ImageMagick ist standardmäßig als Q16 HDRI konfiguriert , was 16 Bit pro Kanal und die Verarbeitung von Werten außerhalb des zulässigen Bereichs (z. B. negative Werte oder Werte oberhalb des normalisierten Maximalwerts) ermöglicht. Dabei werden hauptsächlich Gleitkommaoperationen verwendet. ImageMagick eignet sich ideal für die Verarbeitung hochwertiger Bilder, benötigt aber mehr Speicher und Rechenzeit.

Wenn Ihre Batch-Prozesse keine so hohe Präzision erfordern, können Sie HDRI deaktivieren und die Q8-Tiefe auf Nicht-HDRI reduzieren . Laut Dokumentation halbiert dies den Speicherverbrauch pro Änderung und es werden wieder Integer-Operationen verwendet, die in der Regel schneller sind. Für eine Nicht-HDRI-Q8-Installation unter Linux werden beispielsweise die folgenden Konfigurationsoptionen verwendet:

–with-quantum-depth=8 –disable-hdri

In Version 7.1.1-16 und höher kann die Unterstützung sogar für bis zu 64 Kanäle Hinzufügen der Option zur Linux-Konfiguration –enable-64bit-channel-masksUnter Windows ist diese Funktion in der modernen Version automatisch aktiviert.

Massenautomatisierung unter Linux und macOS mit Bash-Skripten

Eine der gängigsten Methoden zur Stapelverarbeitung von ImageMagick ist die Kombination mit Bash-Skripten auf Unix-ähnlichen Systemen. Die Community hat eine umfangreiche Sammlung von Skripten für verschiedenste Effekte entwickelt: geometrische Transformationen, Weichzeichnen, Rauschentfernung, Formanalyse, Frequenzfilter und vieles mehr.

Typische Richtlinien für ihre Verwendung sind:

  1. Vergewissern Sie sich, dass Sie die BC Präzisionsrechner, das von vielen internen Routinen zur Verarbeitung von Dezimalzahlen verwendet wird.
  2. Laden Sie das Skript herunter und, falls es die Erweiterung hat .dmsBenennen Sie es um, um es zu entfernen, oder ändern Sie es in Sh..
  3. Erteilen Sie der Datei Ausführungsrechte mit einem Befehl wie: chmod u+x script.sh.
  4. Ermitteln Sie die tatsächliche Route von Umwandlung / Magie läuft im Terminal Typ -a konvertieren und, falls mehrere Routen angezeigt werden, sehen Sie sich die Version auf jeder Route an mit Pfad/Konvertierung -Version um zu entscheiden, welches Modell verwendet werden soll.
  5. Passen Sie die Systemvariable PATH an, um den Ordner einzuschließen, in dem sich ImageMagick befindet (oftmals / usr / bin o / usr / local / bin), oder bearbeiten Sie das Skript, indem Sie beispielsweise Folgendes hinzufügen:
    imdir="/usr/local/bin"
    PATH="${imdir}:${PATH}"
  6. Starten Sie das Skript über das Terminal mit folgendem Befehl: bash mit der Syntax:
    bash /vollständiger/pfad/script.sh Argumente /eingabepfad /ausgabepfad

Um die Sache zu vereinfachen, empfiehlt es sich generell, ein eigenes Verzeichnis für Ihre ImageMagick-Skripte anzulegen und dieses Ihrer PATH-Umgebungsvariablen hinzuzufügen. So können Sie die Skripte über ihren Namen aufrufen, ohne den vollständigen Pfad angeben zu müssen, und Skripte, die andere Skripte aufrufen, finden sich problemlos.

Sollten beim Aufruf der Hilfefunktion in einigen Skripten ungewöhnliche Meldungen erscheinen, müssen Sie möglicherweise die Zeilen anpassen, die `sed` verwenden, um die integrierte Dokumentation anzuzeigen. Die Community hat verschiedene Varianten vorgeschlagen, um doppelten Text zu vermeiden. Da viele Skripte von AWK abhängen und das standardmäßig installierte AWK auf manchen Linux-Distributionen nicht wie erwartet funktioniert, empfiehlt es sich, GAWK explizit zu installieren und sicherzustellen, dass es ausgeführt wird.

Die Skriptsammlung enthält regelmäßige Updates, dokumentierte Fehlerbehebungen und spezielle Werkzeuge für FFT, Dekonvolution, räumliche Filter und Formanalyse . Viele dieser älteren Skripte wurden durch native ImageMagick-Funktionen ersetzt (z. B. `-auto-level` , `-brightness-contrast` , `-morphology` , `-distort barrel/depolar` , `-compare -metric ssim` usw.), sind aber weiterhin eine hervorragende Inspirationsquelle für die Entwicklung eigener Batch-Prozesse.

Erweiterte Verwendung in R mit dem magick-Paket

Wer im Bereich Data Science oder statistische Analyse arbeitet, nutzt wahrscheinlich R. In diesem Umfeld bietet das magick- Paket eine moderne Schnittstelle zur ImageMagick STL mit einer idiomatischen API für R und leistungsstarker Unterstützung für vektorisierte Bilder.

Unter Windows und macOS ist die einfachste Methode die Installation über CRAN mit folgendem Befehl:

install.packages("magick")

Die CRAN-Binärdateien sind mit den meisten relevanten Funktionen vorkonfiguriert. Um zu sehen, welche Funktionen in Ihrer spezifischen Installation verfügbar sind, können Sie `magick_config()` verwenden . Diese Funktion gibt Details zur Version, den aktiven Funktionen (cairo, fontconfig, freetype, heic, rsvg, webp usw.) und den deaktivierten Funktionen aus.

Unter Linux muss zum Kompilieren von Magick aus dem Quellcode zunächst die ImageMagick++-Entwicklungsbibliothek installiert sein . Unter Debian/Ubuntu heißt sie beispielsweise so:

sudo apt-get install libmagick++-dev

In Fedora, CentOS oder RHEL heißt das Paket üblicherweise ImageMagick-c++-devel und kann mit yum oder dnf installiert werden:

sudo yum install ImageMagick-c++-devel

Schließlich benötigen Sie unter macOS, wenn Sie aus dem Quellcode kompilieren möchten, ImageMagick oder ImageMagick@6, das über Homebrew installiert sein muss:

brew install imagemagick@6

Sobald das Paket geladen ist mit Bibliothek(magick)Sie können Bilder lesen von lokale Routen, URLs oder RAW-Vektoren Verwendung image_read. Die Funktion Bildinformationen Es liefert Ihnen grundlegende Informationen (Format, Breite, Höhe, Farbraum, Dichte usw.), ähnlich wie der Befehl identifizieren von der ImageMagick-Befehlszeilenschnittstelle.

Zum Schreiben von Bildern verwenden Sie `image_write` . Damit können Sie ein Bildobjekt in einem beliebigen Format auf der Festplatte speichern oder, falls kein Pfad angegeben wird, die Bytes in den Arbeitsspeicher zurückschreiben. Mit dem Parameter `format` können Sie das Format festlegen und das Bild in einen anderen Typ konvertieren, ohne den Dateinamen zu ändern.

Ein wichtiger Aspekt bei der Arbeit mit Stapelverarbeitung ist die Vektorbasierung von Magick-Objekten : Sie können einen Vektor von Bildern verwenden und vektorisierte Funktionen (Zuschneiden, Skalieren, Annotieren, Filtern, Kompositionen) auf alle Elemente anwenden. Darüber hinaus geben die Funktionen eine modifizierte Kopie des Bildes zurück, wodurch sich Transformationen mithilfe von Verkettungsoperatoren ( |> oder %>%) einfach verketten lassen , was hervorragend zur Philosophie von R passt.

Arbeiten mit Sequenzen, Ebenen und Animationen

Ein leistungsstarkes ImageMagick-Konzept für die Stapelverarbeitung sind Bildvektoren . In R und auch über die Kommandozeile ist es üblich, eine Bildsequenz (z. B. die Einzelbilder eines GIFs oder die Seiten eines PDFs) als geordnete Menge zu behandeln, auf die Massentransformationen angewendet werden können.

Beim Betrachten eines animierten GIFs oder einer PDF-Datei wird beispielsweise jedes Einzelbild bzw. jede Seite zu einem Element des Vektors . Mit Operationen wie image_append , image_mosaic , image_flatten , image_animate oder image_morph lassen sich Miniaturansichten, Mosaike, Collagen, neue animierte GIFs oder progressive Bildübergänge erzeugen.

Beispielsweise können Sie eine Animation aus mehreren Ebenen erstellen, indem Sie alle Ebenen auf 200x200 Pixel skalieren, anschließend `image_animate` mit einer bestimmten Bildrate verwenden und das Ergebnis mit `image_write` speichern . Wenn Sie ein vorhandenes GIF importieren und bearbeiten möchten, gehen Sie analog vor: Sie bearbeiten jedes einzelne Bild, wenden Filter, Rahmen oder Anmerkungen an und setzen die Sequenz schließlich wieder zusammen.

Bei langen PDF-Dokumenten ermöglicht die Verwendung von image_read_pdf die Festlegung der Rendering-Dichte im Voraus (z. B. 72 dpi), und jede Seite ist dann für die Stapelverarbeitung bereit: Zuschneiden, Skalieren, Zusammenführen usw. Dies ist äußerst nützlich, wenn Sie Dokumentvorschauen generieren oder Seiten als einzelne Bilder extrahieren müssen.

ImageMagick in Webumgebungen und anderen Sprachen

Neben R lässt sich ImageMagick hervorragend in andere Programmierumgebungen integrieren. Spezielle PHP-Skripte werden serverseitig mit `exec` aufgerufen und übergeben Eingabe- und Ausgabepfade sowie Effektparameter. Die Nutzungsrichtlinien ähneln denen für Bash, sind aber an die Webumgebung angepasst (PATH-Anpassung, Berechtigungen, absolute Pfade usw.).

Wer mit .NET arbeitet, hat Zugriff auf Magick.NET , eine Bibliothek, die ImageMagick-Funktionen direkt in C#-Anwendungen bereitstellt, ohne dass das Programm separat installiert werden muss. Sie eignet sich ideal für die Einrichtung von Bildkonvertierungs- und Stapelverarbeitungsdiensten in REST-APIs, Hintergrundprozessen oder Desktop-Projekten.

Darüber hinaus umfasst das ImageMagick-Ökosystem offizielle CLI-Nutzungsbeispiele und ein „Kochbuch“ mit Windows-spezifischen Rezepten, die Aufgaben wie das Zusammenführen von Bildern, das Generieren von Miniaturansichten, den visuellen Vergleich und mehr abdecken.

Für fortgeschrittene Nutzer gibt es außerdem Drittanbieter-Tools und Community-Skripte wie die beliebten Fred's ImageMagick Scripts . Diese bieten künstlerische Effekte (Lomografie, Schreibmaschineneffekt, Kristallisation, Bokeh, Textleuchten usw.) und praktische Lösungen für alltägliche Probleme (Bilder drehen, Wasserzeichen entfernen, Ecken von Vierecken bestimmen, relevante Inhalte zuschneiden usw.). Viele dieser Skripte lassen sich problemlos in Ihre Batch-Pipelines integrieren.

Die Stärke von ImageMagick für die Stapelverarbeitung liegt letztendlich in der umfangreichen Liste integrierter Funktionen , der Integration mit Sprachen wie R, .NET und PHP sowie der Vielzahl an von der Community erstellten Skripten und Beispielen, die von einfachen Aufgaben bis hin zu mathematisch komplexen Transformationen alles abdecken. Richtig konfiguriert und mit einer geeigneten Sicherheitsrichtlinie ausgestattet, wird es zu einem äußerst robusten Werkzeug für jeden anspruchsvollen Workflow mit großen Bildmengen.

ImageMagick unter Windows 11
Verwandte Artikel:
Wie man ImageMagick als Fotoeditor unter Windows verwendet: Grundlegende Befehle und Beispiele

Als bevorzugte Quelle in Google hinzufügen