2012-04-23 2 views
10

J'ai googlé autant que je peux, mais je ne l'ai trouvé une classe PHP qui appelle Inkscape pour rendre le SVG, donc je demande ici:rendu un fichier SVG à un PNG ou JPEG en PHP

J'ai un fichier SVG valide généré d'une manière ou d'une autre (ou téléchargé par un client). J'ai besoin de rendre ceci dans un JPG ou un PNG using seulement PHP et/ou GDLib, car SVG n'est pas soutenu par tous les navigateurs.

Je n'ai pas la possibilité d'installer quoi que ce soit, donc une classe qui convertit SVG en PNG en utilisant GDLib serait la plus idéale.

Répondre

20

Vérifiez si ImageMagick est installé (vous pouvez trouver en utilisant phpinfo). Si c'est le cas, vous pouvez utiliser le code suivant pour couvrir un fichier PNG.

$image = new Imagick(); 
$image->readImageBlob(file_get_contents('image.svg')); 
$image->setImageFormat("png24"); 
$image->resizeImage(1024, 768, imagick::FILTER_LANCZOS, 1); 
$image->writeImage('image.png'); 

Il y a beaucoup de discussions qui en parlent. Celui qui est particulièrement utile est ce fil: Convert SVG image to PNG with PHP

+1

Malheureusement, ce n'est pas, et je ne peux pas l'installer. Tout ce que j'ai c'est PHP et GDLib. Cela DOIT être possible avec GDLib .. C'est presque juste une traduction, il y a une fonction GDLib pour presque toutes les balises SVG. – DanRedux

+0

GD ne prend pas en charge SVG. Wikimedia prend en charge * ImageMagik *, * sodipodi *, * inkscape *, * batik *, * rsvg *, * imgserv *. Si vous ne pouvez pas installer autre chose, vous pouvez peut-être voir si ces convertisseurs peuvent fonctionner en mode autonome et vous pouvez l'appeler à partir de votre script PHP. –

Questions connexes