Fragen zu PHP-Extension Imagick

Alice

Erfahrenes Mitglied
Hallo. :)

Ich verwende zum verkleinern von Grafiken und Bilder die "PHP-Extension Imagick" und es funktioniert auch Einwandfrei.

Nun möchte ich auch gerne SVG-Dateien in PNG-Dateien umwandeln.

PHP:
<?php
$thumb = new Imagick();
$thumb->readImage('test.svg');
$thumb->writeImage('test.png');
$thumb->clear();
$thumb->destroy();
?>

Aber es funktioniert leider nicht.

Fehler:
Fatal error: Uncaught exception 'ImagickException' with message 'unable to open file `/tmp/magick-XXfQ9o7y': No such file or directory @ constitute.c/ReadImage/569' in /www/htdocs/XXX/ORDNER/svg2png.php:3 Stack trace: #0 /www/htdocs/XXX/ORDNER/svg2png.php(3): Imagick->readimage('test.svg') #1 {main} thrown in /www/htdocs/XXX/ORDNER/svg2png.php on line 3

Ich habe auch schon andere Imagick Codes ausprobiert, die gehen aber auch nicht.

Ich habe auch meinen Hoster (All-Inkl.com) angerufen und die haben irgendwie etwas mit dem Temp-Order gemacht damit es funktioniert aber es funktioniert immer noch nicht. Die wissen nun auch nicht weiter.

Kann mir jemand helfen?

Edit:

Ich kann jetzt nachvollziehen was der Support von All-Inkl.com gemacht hat.

Die haben mir in dem selben Ordner wo das Skript gespeichert ist eine Datei names "tmp" hinzugefügt und eine .htaccess-Datei mit folgendem Inhalt:
php_value session.save_path /www/htdocs/XXX/ORDNER/tmp

Das eigenartige ist das die als "XXX" (Username auf dem Server oder so) etwas eingetragen haben, was ich nicht kenne aber auch wenn ich den Eintrag ändere, funktioniert der Code nicht.

Edit:

KANN es sein das die installierte Imagick (Version 3.0.1) einfach kein SVG kann?

Folgendes habe ich nähmlich eben in der PHP-Info gesehen:
3FR, A, AI, ART, ARW, AVI, AVS, B, BGR, BMP, BMP2, BMP3, BRF, BRG, C, CAL, CALS, CAPTION, CIN, CIP, CLIP, CMYK, CMYKA, CR2, CRW, CUR, CUT, DCM, DCR, DCX, DDS, DFONT, DNG, DPX, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, ERF, FAX, FITS, FRACTAL, FTS, G, G3, GBR, GIF, GIF87, GRADIENT, GRAY, GRB, GROUP4, HALD, HISTOGRAM, HRZ, HTM, HTML, ICB, ICO, ICON, INFO, INLINE, IPL, ISOBRL, JNG, JP2, JPC, JPEG, JPG, JPX, K, K25, KDC, LABEL, M, M2V, M4V, MAP, MAT, MATTE, MIFF, MNG, MONO, MOV, MP4, MPC, MPEG, MPG, MRW, MSL, MTV, MVG, NEF, NULL, O, ORF, OTB, OTF, PAL, PALM, PAM, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PDFA, PEF, PFA, PFB, PFM, PGM, PGX, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG24, PNG32, PNG8, PNM, PPM, PREVIEW, PS, PS2, PS3, PSD, PTIF, PWP, R, RADIAL-GRADIENT, RAF, RAS, RBG, RGB, RGBA, RGBO, RLA, RLE, SCR, SCT, SFW, SGI, SHTML, SR2, SRF, STEGANO, SUN, TEXT, TGA, THUMBNAIL, TIFF, TIFF64, TILE, TIM, TTC, TTF, TXT, UBRL, UIL, UYVY, VDA, VICAR, VID, VIFF, VST, WBMP, WMV, WPG, X, X3F, XBM, XC, XCF, XPM, XPS, XV, XWD, Y, YCbCr, YCbCrA, YUV

Wenn ich meinen Code so ändere das eine PNG-Datei in eine PDF-Datei oder JPEG-Datei konvertiert werden soll, dann funktioniert es!

Was sagt ihr dazu?
 
Zuletzt bearbeitet:
Ich glaube ImageMagick kann erst mit Version 6.x mit SVG-Grafiken umgehen und diese auch erzeugen. Wie kommt man denn zu einer Version 3?
 
Das sind irgendwie zwei verschiedene Sachen.

Bei mir steht:
imagick

imagick module version:
3.0.1

imagick classes:
Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator

ImageMagick version:
ImageMagick 6.5.7-8 2010-12-02 Q16 http://www.imagemagick.org

ImageMagick copyright:
Copyright (C) 1999-2009 ImageMagick Studio LLC

ImageMagick release date:
2010-12-02

ImageMagick number of supported formats:
194

ImageMagick supported formats:
3FR, A, AI, ART, ARW, AVI, AVS, B, BGR, BMP, BMP2, BMP3, BRF, BRG, C, CAL, CALS, CAPTION, CIN, CIP, CLIP, CMYK, CMYKA, CR2, CRW, CUR, CUT, DCM, DCR, DCX, DDS, DFONT, DNG, DPX, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, ERF, FAX, FITS, FRACTAL, FTS, G, G3, GBR, GIF, GIF87, GRADIENT, GRAY, GRB, GROUP4, HALD, HISTOGRAM, HRZ, HTM, HTML, ICB, ICO, ICON, INFO, INLINE, IPL, ISOBRL, JNG, JP2, JPC, JPEG, JPG, JPX, K, K25, KDC, LABEL, M, M2V, M4V, MAP, MAT, MATTE, MIFF, MNG, MONO, MOV, MP4, MPC, MPEG, MPG, MRW, MSL, MTV, MVG, NEF, NULL, O, ORF, OTB, OTF, PAL, PALM, PAM, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PDFA, PEF, PFA, PFB, PFM, PGM, PGX, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG24, PNG32, PNG8, PNM, PPM, PREVIEW, PS, PS2, PS3, PSD, PTIF, PWP, R, RADIAL-GRADIENT, RAF, RAS, RBG, RGB, RGBA, RGBO, RLA, RLE, SCR, SCT, SFW, SGI, SHTML, SR2, SRF, STEGANO, SUN, TEXT, TGA, THUMBNAIL, TIFF, TIFF64, TILE, TIM, TTC, TTF, TXT, UBRL, UIL, UYVY, VDA, VICAR, VID, VIFF, VST, WBMP, WMV, WPG, X, X3F, XBM, XC, XCF, XPM, XPS, XV, XWD, Y, YCbCr, YCbCrA, YUV

Edit:

Ich habe eben eine E-Mail vom Support bekommen das es wohl NUR mit PHP 5.3 geht und ich soll:
PHP:
AddHandler php53-cgi .php
in meine .htaccess einfügen.

Gesagt getan und geht nicht. Aber die PHP-Version wird erkannt.
 
Zuletzt bearbeitet:
Du beziehst dich auf die php-imagick-Modul-Version 3. Die dahinter liegende ImagMagick-Bibliothek ist eine 6.5er, also kann sie SVG.

Folgende Tipps noch:
Gib den absoluten Pfad zu der Quelldatei und zur Zieldatei an.
Die Fehlermeldung
Uncaught exception 'ImagickException' with message 'unable to open file
solltest Du mal ergoogeln. Da gibt es Hinweise auf Bugs in Windows-Versionen, ebenso auf die Pfadangaben.
 
Ich habe bereits alles gegoogelt und alles von Englisch auf Deutsch übersetzt.

Der Support hat mir eben geschrieben das MEIN SKRIPT auf einem anderen PHP 5.3 Server Problemlos SVG in PNG konvertiert. Aber auf meinen Server geht es nicht und das obwohl ich PHP 5.3 aktiviert habe.

Das mit dem Pfad habe ich in allen erdenklichen Möglichkeiten ausprobiert. Geht alles nicht.

Danke für deine Antwort und dein Interesse! :)

Edit:

Ich habe den Support gebeten meine PHP-Info (PHP 5.3 im CGI Modus) und die PHP-Info des anderen Server (PHP 5.3.X) zu vergleichen und ich habe nun die Antwort bekommen das Imagick im PHP 5.3 (CGI Modus) nicht mit SVG umgehen kann. Deshalb wurde mir Angeboten einen Umzug auf einem anderen Server zu machen.

Was haltet ihr davon? Ist meine PHP-Version einfach nicht "SVG" tauglich? Hätte ich durch PHP 5.3 andere Vorteile oder Nachteile?

Edit:

Ich habe eben noch eine E-Mail vom Support bekommen und nun hat man mir Angeboten mich auf einen Server zu packen wo zwar alles gleich ist (PHP 5.2 usw.) aber dort gäbe es die SVG Unterstützung.

Ich habe den Support gebeten einfach die SVG zu installieren. Mal gucken ob die das machen können.

Edit:

So nun habe ich noch eine E-Mail bekommen und nun heisst es das es nicht an der PHP-Version liegt sondern "an der Kernel Version von Linux" und das kann man wohl nicht nachinstallieren.
 
Zuletzt bearbeitet:
Ich bin bei All-Inkl.com und habe dort das "große Webhoster Paket". Ich bin eigentlich auch sehr zufrieden.
 
Hallo. :)

Hast du evtl. eine Vermutung was es sein kann?

Mein Server wurde die Nacht jedenfalls auf einen anderen Server mit den selben Eckdaten* umgezogen und nun kann ich Problemlos von SVG in PNG konvertieren.

*
PHP:
5.2.12-nmm2

PHPs max. Post-Größe:
200,00 MB

PHPs maximale Uploadgröße:
200,00 MB

PHPs Speicherlimit:
64,00 MB

MySQL-Version:
5.1.43-nmm4-log

MySQL Paketgröße:
16,00 MB

Mir wurde auch zugesichert das ich demnächst (wenn ich will) auf einen PHP 5.3.10 Server umziehen kann. Ein Umzug wäre jederzeit (kostenlos) möglich.
 
Zurück