Imagick (ImageMagick) in PHP unter Windows nutzen (aktivieren)

Ählich wie andere Module lässt sich auch Imagick einfach in PHP integrieren. Dafür benötigt es lediglich eine entsprechende *.dll-Datei.
Allerdings benötigt Imagick zwingend das Programm ImageMagick, auf dem es basiert und deren Funktionen es nutzt. Daher möchte ich einmal kurz die Vorgehensweise erklären, wie man beides erfolgreich zum Laufen bekommt.

Zuerst einmal muss man ImageMagick unter folgender Adresse herunterladen:
imagemagick.org/script/binary-releases.php#windows
Auch wenn Windows in einer 64-Bit Variante vorhanden ist, bitte die 32-Bit Variante herunterladen, genauer gesagt, folgende: "Win32 dynamic at 16 bits-per-pixel".

Bei der Installation sollte dann auf jeden Fall den Haken bei "Add application directory to your system path". Das wird benötigt, damit PHP den Pfad später auch findet und die sich dort befindlichen Dateien nutzen kann.
Die übrigen Haken sich optional, für die reine Nutzung in PHP allerdings zu vernachlässigen, da sie hier nicht benötigt werden.

Danach braucht man noch die entsprechende Erweiterung für PHP.
Aktuelle Versionen für PHP 5.3 gibt es hier: valokuva.org/builds/
Aktuelle Versionen für PHP 5.4 gibt es hier: peewit.fr/imagick/

Diese sind jeweils unterteilt in "ts" = "thread safe" und "nts" = "none thread safe". Was davon bei eurer Installation ist, müsst ihr selbst in der PHPInfo schauen. Der Eintrag findet sich weit oben unter "Thread Safety". enabled = "ts", disabled = "nts". Demnach dann die jeweilige Datei herunterladen und in das Erweiterungsverzeichnis von PHP einfügen (standardmäßig: PHP_DIR\ext\).
Durch folgende Zeile in der php.ini muss man die Erweiterung dann nur noch laden:

Quellcode

  1. extension=php_imagick.dll
Nach einem Neustart des Webservers sollte nun der Pfad der ImageMagick Installation in der PHPInfo auftauchen:

Außerdem sollte imagick als Erweiterung geladen sein:

Als letztes kann imagick noch getestet werden. Dazu einfach eine PHP-Datei mit folgendem Inhalt anlegen und aufrufen:

PHP-Quellcode

  1. <?php
  2. error_reporting(E_ALL);
  3. ini_set("display_errors", 1);
  4. $im = new Imagick();
  5. $im->newImage(100, 100, "green", "png");
  6. $draw = new ImagickDraw();
  7. $draw->setFillColor("white");
  8. $draw->setStrokeWidth(1);
  9. $draw->setStrokeColor("black");
  10. $draw->circle(50, 50, 50, 90);
  11. $im->drawImage($draw);
  12. $itWorks = "It works!";
  13. $draw = new ImagickDraw();
  14. $draw->setStrokeColor("black");
  15. $draw->setTextAlignment(Imagick::ALIGN_CENTER);
  16. $metrics = $im->queryFontMetrics($draw, $itWorks);
  17. $adjustY = ($metrics["textHeight"] + $metrics["descender"]) / 2; // ~ vertical align: middle
  18. $draw->annotation(50, 50 + $adjustY, "It works!");
  19. $im->drawImage($draw);
  20. header("Content-Type: image/" . $im->getImageFormat());
  21. echo $im->getImageBlob();
  22. ?>
Alles anzeigen
Idealerweise sollte dann folgendes Bild erstellt worden sein:
Über den Autor
Ich bin Webentwickler in Stuttgart und administriere Server seit vielen Jahren. In diesem Blog erstelle ich hauptsächlich Tutorials für andere Webentwickler, Webdesigner und Serveradministratoren.
-------------------------------------------------------------------------------------------------------------------------------------
I’m a web developer in Stuttgart, Germany, and server administrator since many years. This blog mainly contains a tutorial set for other web developer, web designer and server administrators.

5.271 mal gelesen

Kommentare 3

  • Netw0rk -

    Danke!

    Habe den Artikel aktualisiert.

  • Black Rider -

    Bei Linux braucht man nicht groß ein Tutorial erstellen. Unter Debian z.B. einfach php5-imagick über die Paketverwaltung zur Installation auswählen, dann werden alle erforderlichen Pakete automatisch installiert.

  • Netw0rk -

    Hi,

    Sehr schöne Anleitung! Würde mich über eine Linux Anleitung freuen. Werde den Beitrag auf meinem Blog: netw0rk.eu verlinken!

    Gruß
    Netw0rk

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen