Donnerstag, 9. April 2009

phpThumb mit statisch kompiliertem Imagemagick

Hatte gerade das Problem, dass ich für einen Kunden eine Bilddatenbank aufsetzen sollte, die mit phpThumb läuft. Der Kunde wollte jetzt auch z.B. PSD-Dateien mit einer Vorschau angezeigt bekommen und somit musste natürlich auch ImageMagick auf dem Server liegen... tat es aber nicht... und war auch nicht nachzuinstallieren, weil es um einen Managed Server ging.

Allerdings geistert im Web eine statisch kompilierte Version 4.2.9 (uralt) herum, die eigentlich für Typo3 gedacht ist. Die kann man dann per FTP einfach hochladen, muss noch die Ausführungsrechte setzen und schon gehts... nur nicht mit PHPThumb. Hier sind ein paar kleine Änderungen nötig.

Zuerst muss der Pfad zum convert-Tool in der "phpThumb.config.php" angegeben werden. Einfach folgende Zeile suchen und anpassen:

$PHPTHUMB_CONFIG['imagemagick_path'] = 'path/to/imagemagick-4.2.9_i386-static/convert';

Dann muss die "phpthumb.class.php" leicht angepasst werden. Zuerst die Funktion "ImageMagickVersion". Da der reguläre Ausdruck in dieser Funktion nicht die Versionsnummer der statisch kompilierten IM-Version matcht, müssen wir da ein wenig nachhelfen. Am einfachsten (und schmutzigsten) ist es, direkt eine eigene Versionsnummer zurückzugeben:

// diese Zeile vor dem return am Ende hinzufügen
return '4.2.9 99/09/01';
return @$versionstring[intval($returnRAW)];

Jetzt erkennt phpThumb schon einmal, dass es eine gültige ImageMagick-Version gibt. Allerdings haben wir noch das Problem, dass es in dieser uralten Version noch nicht die "-resize" Parameter gab. Hierfür reicht es, in der Funktion "ImageMagickThumbnailToGD" die Zeile

$IMresizeParameter = 'resize';
durch
$IMresizeParameter = 'size';

zu ersetzen. Und schon läufts.

Keine Kommentare:

Kommentar veröffentlichen