在 PHP 中将 SVG 文件渲染为 PNG 或 JPEG


Rendering an SVG file to a PNG or JPEG in PHP

我已经尽可能多地搜索了,但我只找到了一个调用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');

有很多线程讨论这个问题。一个特别有用的是这个线程:使用 PHP 将 SVG 图像转换为 PNG