GD oder ImageMagick
Bildverarbeitung in Kirby 5
Kirby 5 unterstützt zwei Bildverarbeitungs-Engines: GD und ImageMagick. Was sind die Unterschiede, und wann lohnt sich der Wechsel?
Kirby 5 verarbeitet Bilder intern über eine austauschbare Engine. Standardmäßig nutzt Kirby GD – eine PHP-eigene Bildbibliothek die auf praktisch jedem Shared-Hosting verfügbar ist. Wer mehr Kontrolle und bessere Qualität möchte, kann auf ImageMagick umsteigen.
GD – der sichere Standard
GD ist in PHP eingebaut und braucht keine separate Installation. Es funktioniert überall, ist schnell und für die meisten Anwendungsfälle ausreichend. Die Schwäche liegt in der Bildqualität: GD vereinfacht bei der Konvertierung nach WebP oder JPEG manchmal Farbräume, ignoriert ICC-Farbprofile und produziert bei starker Verkleinerung gelegentlich weniger scharfe Ergebnisse.
ImageMagick – mehr Qualität, mehr Kontrolle
ImageMagick ist eine eigenständige Bildverarbeitungs-Software die auf dem Server installiert wird. Die PHP-Extension imagick verbindet PHP mit ImageMagick. Die Vorteile gegenüber GD:
Farbgenauigkeit – ImageMagick liest und erhält ICC-Farbprofile. Fotos von einer Spiegelreflexkamera behalten ihre Farbcharakteristik auch nach der Verkleinerung. Das Ergebnis wirkt satter und natürlicher.
Schärfere Thumbnails – bei der Verkleinerung großer Bilder auf Web-Dimensionen produziert ImageMagick deutlich schärfere Ergebnisse als GD, besonders bei feinen Details und Texturen.
Mehr Formate – ImageMagick unterstützt HEIC, RAW-Formate, EXR und viele weitere Dateitypen die GD nicht verarbeiten kann.
Besseres WebP – die WebP-Konvertierung via ImageMagick nutzt mehr Optimierungsstufen und produziert kleinere Dateien bei gleicher oder besserer Qualität.
Konfiguration in Kirby
Der Wechsel ist denkbar einfach – ein einzelner Eintrag in site/config/config.php reicht:
'thumbs' => [
'driver' => 'im',
],
Der Wert im steht für ImageMagick. Alle anderen Thumb-Einstellungen wie quality, format und srcsets bleiben unverändert.
Installation
ImageMagick selbst ist auf den meisten Linux-Servern bereits vorhanden oder lässt sich per apt installieren. Die PHP-Extension ist je nach Distribution als Paket verfügbar:
sudo apt install php8.x-imagick
Falls das Paket für die genutzte PHP-Version noch nicht im Repository liegt – wie aktuell für PHP 8.4 – kann die Extension über PECL kompiliert werden:
sudo pecl install imagick
Sicherheitshinweis
ImageMagick hat historisch mehr Sicherheitslücken als GD – der bekannteste Vorfall war ImageTragick 2016, bei dem präparierte Bilddateien Code auf dem Server ausführen konnten. Wer ImageMagick per apt installiert hat ist gut aufgestellt: Sicherheitsupdates kommen automatisch mit apt upgrade. Wer die PHP-Extension über PECL kompiliert hat muss diese separat mit pecl upgrade imagick aktuell halten.
Fazit
Für einfache Blogs und Seiten ohne hohe Anforderungen an Bildqualität ist GD vollkommen ausreichend. Wer hingegen Fotos von hochwertigen Kameras veröffentlicht und Wert auf Farbgenauigkeit und Schärfe legt, merkt den Unterschied zu ImageMagick sofort. Der Wechsel kostet eine Zeile Konfiguration – der Gewinn ist sichtbar.