Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ImageMagick读取数据:图像/svg而不是文件_Php_Svg_Imagemagick - Fatal编程技术网

Php ImageMagick读取数据:图像/svg而不是文件

Php ImageMagick读取数据:图像/svg而不是文件,php,svg,imagemagick,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 看起来唯一的方法就是使用Im

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

当我检索向量时,它看起来像‘data:image/svg+xml;base64,…”。现在,我正在使用fwrite()导出文件,然后在上面运行Image Magick,但我希望能够跳过这一步

这能做到吗

我目前的命令如下:

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

看起来唯一的方法就是使用Imagick。我以后会这样做,但是在这个网站运行的主机上安装一个新的安装并运行会很麻烦


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

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

echo 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiI+PGNpcmNsZSBjeD0iMTYiIGN5PSIxNiIgcj0iOCIgZmlsbD0ibGltZSIvPjwvc3ZnPgo=' | cut -d',' -f2 | base64 -d | convert - test.png
出于某种原因,
convert
似乎喜欢将XML序言放在字符串中