ImageMagick convert unter Ubuntu: Bildverarbeitung im Terminal

Einführung: Bildverarbeitung auf der Linux-Konsole

Sobald im Server- oder Desktop-Alltag unter Ubuntu hunderte Grafiken automatisiert verarbeitet werden müssen, stößt man mit GUI-Anwendungen schnell an Grenzen. Das Dienstprogramm convert aus der ImageMagick-Suite erweist sich hierbei als mächtiges Werkzeug für Administratoren und Entwickler. Die folgende Anleitung führt praxisnah durch die Bereitstellung des Pakets und demonstriert essenzielle Parameter für die tägliche Arbeit auf der Befehlszeile.

Installation des ImageMagick-Pakets und Formatkonvertierung

Vor der praktischen Demonstration wird das Werkzeug auf dem System eingerichtet. Der folgende Befehl aktualisiert den Paketindex und richtet die Suite ohne manuelle Bestätigungsdialoge ein: apt-get update -qq && apt-get install -y imagemagick.

ImageMagick via Paketmanager einrichten

Das Modul convert fungiert als Schweizer Taschenmesser für Rastergrafiken: Es übernimmt Konvertierungen zwischen Dateiformaten, modifiziert Abmessungen und führt geometrische Transformationen aus.
Mit der Abfrage convert -version | head -n 2 lässt sich prüfen, welche Version auf dem Host aktiv ist.
⚙️ [Zentrale Parameter]

-resize : Justiert die Pixelmaße wahlweise unter Beibehaltung des Seitenverhältnisses oder auf feste Zielwerte.
-quality : Steuert den Kompressionsgrad (Wertebereich 1 bis 100), wodurch Dateigröße und Bildschärfe austariert werden.
-rotate : Dreht das Bildmaterial um einen angegebenen Gradwert im Uhrzeigersinn.
-crop : Schneidet definierte Bildausschnitte anhand von Positions- und Größenkoordinaten heraus.
-size : Legt Dimensionen für neu zu erzeugende Farbflächen oder leere Zeichenflächen fest.

Versionsinformationen und Build-Details auslesen

Als reproduzierbare Grundlage für alle weiteren Schritte generieren wir eine 300x200 Pixel große Farbfläche im Farbton Steelblue: convert -size 300x200 xc:steelblue input.png.

Generierung eines Testbildes über die Kommandozeile

Die Überführung von PNG in das platzsparende JPEG-Format erfordert lediglich die Angabe beider Dateinamen: convert input.png output.jpg.
ImageMagick analysiert die Zieldateiendung selbstständig und wählt daraufhin den passenden Encoder für das Exportformat.

Automatische Formatumwandlung nach JPEG

Um sicherzustellen, dass die Dateien technisch korrekt kodiert wurden, gibt der Befehl file input.png output.jpg Auskunft über Header-Spezifikationen und Geometriedaten.

Validierung der MIME-Typen und Bilddimensionen

Bildauflösung flexibel anpassen: Skalierung mit -resize

Sollen Pixelabmessungen modifiziert werden, ohne das ursprüngliche Seitenverhältnis zu verzerren, kommt der Schalter -resize 150x100 zum Einsatz.
Die Routine errechnet die größtmögliche Ausdehnung, die innerhalb dieser Grenzwerte liegt, ohne das Ausgangsbild zu stauchen.

Proportionale Skalierung auf Zielmaße

Häufig ist eine prozentuale Schrumpfung praktischer als fixe Pixelwerte. Mit -resize 50% halbiert das Werkzeug Breite und Höhe symmetrisch.

Prozentuale Verkleinerung des Ausgangsbildes

Das Analyseprogramm identify dient der Verifikation der transformierten Assets: identify input.png resize_exact.png resize_half.png.
Auf einen Blick werden Farbtiefe, Geometrie und Farbraum der verarbeiteten Dateien auf der Konsole ausgegeben.

Prüfung der geänderten Auflösungen via identify

Geometrische Transformationen: Drehung und Spiegelung (-rotate, -flip, -flop)

Eine Drehung im Uhrzeigersinn um genau einen rechten Winkel realisiert der Aufruf convert input.png -rotate 90 rotate_90.png.
Dadurch vertauschen sich die ursprünglichen Breiten- und Höhenwerte in der Zieldatei.

Drehung um 90 Grad im Uhrzeigersinn

Für eine Spiegelung an der horizontalen Achse (Kopfüber-Darstellung) steht die Option -flip bereit.
Sämtliche Bildpunkte werden vertikal invertiert, während die Abmessungen der Datei unverändert bleiben.

Vertikale Achsenspiegelung des Bildinhalts

Möchte man hingegen einen Spiegeleffekt entlang der vertikalen Mittelachse erzeugen, wählt man -flop.
Das Motiv wird hierbei von links nach rechts umgekehrt, wie beim Blick in einen Spiegel.

Horizontale Spiegelung entlang der Hochachse

Zur Kontrolle der modifizierten Dateien führen wir erneut identify aus: identify rotate_90.png flip_vertical.png flop_horizontal.png.
Die Ausgabe belegt den Wechsel auf 200x300 Pixel bei der 90-Grad-Rotation sowie den Erhalt der ursprünglichen 300x200 Pixel bei den Spiegelungsoperationen.

Inspektion der Geometriedaten nach Drehung und Spiegelung

Farbraumreduktion und Speicheroptimierung (-colorspace, -quality)

Um farbige Grafiken in monochrome Graustufen zu transformieren, wird der Farbraum via -colorspace Gray umgestellt.
Das Programm verwirft die einzelnen RGB-Kanäle und erzeugt ein reines Grauwertbild mit reduzierter Informationsdichte.

Umwandlung in den Graustufen-Farbraum

Gerade bei Webprojekten spielt die Dateigröße eine entscheidende Rolle. Der Parameter -quality 30 komprimiert JPEG-Dateien aggressiver und spart so wertvollen Speicherplatz bei akzeptablen visuellen Einbußen.

Reduzierung der JPEG-Qualitätsstufe auf 30

Die tatsächliche Speicherersparnis lässt sich schnell mit ls -lh output.jpg compressed.jpg gegenüberstellen.
Im direkten Vergleich wird unmittelbar ersichtlich, wie drastisch der Speicherbedarf durch die Qualitätsanpassung sinkt.

Gegenüberstellung der Dateigrößen im Terminal

Um den hinterlegten Kompressionsfaktor im Nachhinein aus den Metadaten auszulesen, eignet sich der Formatstring -format "%f: Quality %Q\n" in Kombination mit identify output.jpg compressed.jpg.
Damit lässt sich softwareseitig verifizieren, ob der vorgegebene Qualitätswert (%Q) exakt in die Dateistruktur geschrieben wurde.

Auslesen des Qualitätsindex aus den Bild-Metadaten

Mit diesen Kernfunktionen deckt convert die wichtigsten Anforderungen automatisierter Grafikworkflows unter Ubuntu zuverlässig ab.
Eingebettet in Shell-Skripte oder CI/CD-Pipelines sparen diese Parameter wertvolle Zeit bei Routineaufgaben der Bildbearbeitung.