1

我正在尝试将 SVG 转换为 PNG,到目前为止,当我使用文件(file.svg)时一切正常,但目前我的 SVG 文件(简单签名)存储在数据库中。

当我检索矢量时,它看起来像 'data:image/svg +xml; base64,...'。现在,我正在使用 fwrite() 导出文件,然后在其上运行 Image Magick,但我希望能够省略这一步。

这可以做到吗?

我当前的命令如下:

/usr/bin/convert /path/to/file.svg /path/to/file.png
4

2 回答 2

0

看起来这样做的唯一方法是使用 Imagick。我将来会走这条路,但是在这个站点运行的主机上安装并运行新的安装会很乏味。

最终,我选择将 SVG 导出为 XML 文件并使用 .svg 扩展名保存它,以便可以使用上面显示的语法加载它。

于 2012-10-29T16:41:21.687 回答
0

好吧,可能有多种方法可以做到这一点,这里有一个:

echo 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiI+PGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iOCIgZmlsbD0ibGltZSIvPjwvc3ZnPgo=' | cut -d',' -f2 | base64 -d | convert - test.png

出于某种原因,似乎convert喜欢在字符串中包含 XML 序言。

于 2012-10-29T18:39:11.243 回答