我已经尽可能地搜索,但只找到了一个调用Inkscape来渲染SVG的PHP类,因此我在这里提问:
我有一个通过某种方式生成(或由客户上传)的有效SVG文件。我需要使用仅限于PHP和/或GDLib将其呈现为JPG或PNG,因为SVG并不被所有浏览器支持。
我没有安装任何东西的选项,因此使用GDLib将SVG转换为PNG的类是最理想的选择。
我已经尽可能地搜索,但只找到了一个调用Inkscape来渲染SVG的PHP类,因此我在这里提问:
我有一个通过某种方式生成(或由客户上传)的有效SVG文件。我需要使用仅限于PHP和/或GDLib将其呈现为JPG或PNG,因为SVG并不被所有浏览器支持。
我没有安装任何东西的选项,因此使用GDLib将SVG转换为PNG的类是最理想的选择。
检查是否已安装ImageMagick(您可以使用phpinfo
来查找)。如果是,则可以使用以下代码将其转换为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');
这个问题已经有很多相关的讨论了,其中一个非常有用的讨论是这个: Convert SVG image to PNG with PHP