Rendering an SVG file to a PNG or JPEG in PHP [duplicate]
Asked Answered
A

1

14

I've googled as much as I can, but I've only found a PHP class that calls upon Inkscape to render the SVG, so I ask here:

I have a valid SVG file generated in some way (or uploaded by a client). I need to render this into a JPG or PNG using just PHP and/or GDLib, as SVG is not supported by all browsers.

I do not have the option of installing anything, so a class that converts SVG to PNG using GDLib would be the most ideal.

Alix answered 23/4, 2012 at 23:27 Comment(1)
good solution using pure gd library phpclasses.org/browse/file/226624.html but it has some notice and warning that you need to fix. i use it in my project after fixing those notice and warning. hope it may help someoneCatlett
T
30

Check if ImageMagick is installed (you can find out using phpinfo). If it is, you can use the following code to cover to a 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');

There are many threads that discuss this. One that is particularly useful is this thread: Convert SVG image to PNG with PHP

Toomay answered 23/4, 2012 at 23:34 Comment(3)
Sadly, it's not, and I can't install it. All I have is PHP and GDLib. It MUST be possible with GDLib.. It's almost just a translation, there's a GDLib function for almost every SVG tag.Alix
GD doesn't support SVG. Wikimedia supports ImageMagik, sodipodi, inkscape, batik, rsvg, imgserv. If you can't install anything else, maybe you can see if those converters can run standalone and you can invoke it from your PHP script.Toomay
good solution using pure gd library phpclasses.org/browse/file/226624.html but it has some notice and warning that you need to fix. i use it in my project after fixing those notice and warning. hope it may help someoneCatlett

© 2022 - 2024 — McMap. All rights reserved.