【问题标题】:Rendering an SVG file to a PNG or JPEG in PHP [duplicate]在 PHP 中将 SVG 文件渲染为 PNG 或 JPEG [重复]
【发布时间】:2012-05-04 14:30:06
【问题描述】:

我已经尽可能多地在谷歌上搜索,但我只找到了一个调用 Inkscape 来呈现 SVG 的 PHP 类,所以我在这里问:

我有一个以某种方式生成(或由客户端上传)的有效 SVG 文件。我需要仅使用 PHP 和/或 GDLib 将其渲染为 JPG 或 PNG,因为并非所有浏览器都支持 SVG。

我没有安装任何东西的选项,因此使用 GDLib 将 SVG 转换为 PNG 的类是最理想的。

【问题讨论】:

  • 使用纯 gd 库 phpclasses.org/browse/file/226624.html 的好解决方案,但它有一些需要修复的通知和警告。在修复这些通知和警告后,我在我的项目中使用它。希望它可以帮助某人

标签: php svg gdlib


【解决方案1】:

检查是否安装了 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

【讨论】:

  • 很遗憾,它不是,我无法安装它。我只有 PHP 和 GDLib。 GDLib 必须是可能的。它几乎只是一个翻译,几乎每个 SVG 标签都有一个 GDLib 函数。
  • GD 不支持 SVG。维基媒体支持 ImageMagiksodipodiinkscapebatikrsvg图像服务。如果你不能安装其他任何东西,也许你可以看看这些转换器是否可以独立运行,你可以从你的 PHP 脚本中调用它。
  • 使用纯 gd 库 phpclasses.org/browse/file/226624.html 的良好解决方案,但它有一些需要修复的通知和警告。在修复这些通知和警告后,我在我的项目中使用它。希望它可以帮助某人
猜你喜欢
  • 2011-09-09
  • 2021-12-08
  • 2018-12-29
  • 1970-01-01
  • 2019-10-17
  • 2016-01-28
  • 2014-07-09
  • 2015-12-10
  • 2020-03-13
相关资源
最近更新 更多