在花了两天尝试使用 ImageMagick 从 SVG 字符串栅格化 jpeg 后,我终于放弃了。
虽然我设法使实际转换工作正常,但似乎 Imagemagick 在渲染图像时无法正确转换变换/旋转功能,导致输出与原始 SVG 不同。
经过进一步研究,这似乎是一个已知问题,“Inkscape”是在 PHP 中将 SVG 转换为 jpeg/png 的最佳方法。
问题是我的 SVG 数据是通过 JSON 发送到我的 PHP 脚本的。如何将 blob 或字符串输入 Inkscape 命令行以进行转换?
非常感谢您的任何建议。
最佳答案
如果您有一个 SVG 字符串,并且您要通过 AJAX 将它从浏览器发送到服务器,您需要将它写入一个临时文件,以便可以从 Inkscape 命令行引用它。您无法使用 Inkscape 命令行渲染为 JPEG,但可以轻松渲染为 PNG,如果您确实需要不同的格式,当然您可以随后使用 ImageMagick 进行转换。
你需要这样的东西:
/path/to/inkscape \
--without-gui \
--export-png=/path/to/output.png \
/tmp/file/input.svg
如果您接受来自用户的完整/部分 SVG 输入,请记住您需要牢记大量安全问题。如果需要,很乐意对此进行扩展。
关于php - 如何使用 Inkscape 将 SVG 字符串转换为 jpg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10400897/