MagickImages: Unterschied zwischen den Versionen
Aus Contao Community Documentation
K (Anpassungen) |
Tril (Diskussion | Beiträge) |
||
Zeile 6: | Zeile 6: | ||
| DevSite=http://www.infinitysoft.de | | DevSite=http://www.infinitysoft.de | ||
| ExtVersion=1.1.0 | | ExtVersion=1.1.0 | ||
− | | Version=2.9.3 - 2. | + | | Version=2.9.3 - 2.10 |
| ERLink=http://www.contao.org/erweiterungsliste/view/MagickImages.html | | ERLink=http://www.contao.org/erweiterungsliste/view/MagickImages.html | ||
| TrackerLink=http://dev.contao-forge.org/projects/magickimages/issues | | TrackerLink=http://dev.contao-forge.org/projects/magickimages/issues |
Aktuelle Version vom 9. November 2011, 20:38 Uhr
MagickImages bring ImageMagick Support nach Contao.
Erweiterungs-Übersicht | |
---|---|
Name des Entwicklers | Tristan Lins |
Entwickler Webseite | http://www.infinitysoft.de |
Version der Erweiterung | 1.1.0 |
Kompatibilität mit Contao Version | 2.9.3 - 2.10 |
Link zum Extension Repository | http://www.contao.org/erweiterungsliste/view/MagickImages.html |
Link zum Tracker | http://dev.contao-forge.org/projects/magickimages/issues |
Standardmäßig verwendet Contao die GD2 Library, diese ist schnell in der Verarbeitung, bringt aber vor allem beim Verkleinern großer Bilder oft nur schlechte Ergebnisse. Deshalb ist es unter Umständen eine Option ImageMagick anstelle von GD2 zu verwenden.
Inhaltsverzeichnis
Vorwort
Nachteile von ImageMagick
- ImageMagick ist langsamer als GD2
- MagickImages benötigt entweder
- die Imagick PHP Library (PECL Paket)
- oder es muss möglich sein mittels proc_open, exec oder shell_exec externe Programme auszuführen.
Vorteile von ImageMagick
- Die Qualität ist (teils deutlich) besser
- Größere Bilder (> 3000px x 3000px) sind für ImageMagick kein Problem
Warum also ImageMagick?
Der Geschwindigkeitsvorteil von GD2 macht sich erst bei größeren Bildern (>~ 1000px x 1000px) effektiv bemerkbar. Der qualitative Vorteil kann sich aber bereits bei kleinen Bildern deutlich bemerkbar machen. Wird beispielsweise ein 120x120 großes Bild auf 100x100 verkleinert, wirkt es bei GD2 unscharf. Wird ImageMagick mit seinem unsharp Feature eingesetzt, macht sich die Verkleinerung nahezu nicht bemerkbar.
MagickImages verwenden
Duale Implementierung
Imagick PHP Library
Die Imagick PHP Library ist ein PECL Paket, dass selbst bei Shared-Hostern immer mehr verfügbar ist. Der Grund ist einfach, mit der Imagick Library haben die Kunden Zugriff auf ImageMagick ohne dass das Ausführen externer Programme erlaubt sein muss.
Prozess Aufruf
Die klassische Alternative ist es, den convert Befehl von ImageMagick als externes Programm aufzurufen. Hierzu gibt es 3 Methoden:
- proc_open (in den Einstellungen nur als proc benannt!) - Aufrufe mit proc_open lassen sich am besten kontrollieren und der Programmablauf überwachen. Programmabbrüche lassen sich garantiert erkennen.
- exec - Der Klassiker exec wird gern verwendet, kann aber nur bedingt Fehlermeldungen abgreifen. Im schlimmsten Fall erscheint die Fehlermeldung innerhalb der Website und der Programmabbruch lässt sich überhaupt nicht erkennen.
- shell_exec - Hier gilt das gleiche wie bei exec, außer das Fehlermeldungen innerhalb der Website vermieden werden können, ist aber langsamer in der Initialisierung als exec.
proc_open und exec tun sich in der Ausführungs- und Verarbeitungsgeschwindigkeit nahezu überhaupt nichts, daher ist die Empfehlung auch proc_open zu verwenden, wenn möglich. shell_exec führt das eigentlich Programm, also in diesem Fall convert in einer Shell z.B. bash aus, da hier ein zusätzliches Programm gestartet wird, ist dieser Aufruf langsamer.
Installation
MagickImages lässt sich über das Extension Repository installieren.
Konfiguration
MagickImages sollte sich von selbst auf die vorhandene Möglichkeiten einrichten. Wenn Imagick verfügbar ist, wird Imagick genutzt, ansonsten wird der externe Prozessaufruf verwendet.
Einrichten lässt sich MagickImages über die Systemeinstellungen. Hier sei bei allen Feineinstellungen der Hinweis auf die ImageMagick Dokumentation gegeben, die Informationen lassen sich auf die Einstellungen 1 zu 1 übertragen.
Externer Prozessaufruf
Blur
Für Details bitte die ImageMagick Dokumentation lesen.
Unsharp
Für Details bitte die ImageMagick Dokumentation lesen.
Troubleshooting
Was tun wenn es nicht funktioniert?
Zuerst einmal sei gesagt, wenn MagickImages erkennt, dass ImageMagick nicht korrekt ausgeführt wurde (nur als externer Programmaufruf), dann wird als Fallback auf GD2 zurück gegriffen. Eine entsprechende Fehlermeldung wird im Systemlog generiert, dort ist die Anlaufstelle um zu prüfen was passiert ist.