ImageMagick读取数据:image / svg而不是文件

时间:2012-10-27 16:28:45

标签: php svg imagemagick

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

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

可以这样做吗?

我当前的命令如下:

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

嗯,有可能通过多种方式实现这一目标,其中之一是:

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

由于某种原因,似乎convert喜欢在字符串中使用XML prolog。