2017-06-28 82 views
0

如何将svg作为PNG文件下载? SVG可能包含动画,所以我不想使用画布,下面的代码我能够以svg格式下载图像,任何建议请转换svg到png在JavaScript?将SVG(包含动画)另存为PNG文件无需在canvas中画布

var a = document.createElement('a'); 
a.href = 'data:image/svg+xml;charset=utf-8,<svg xmlns="http:​/​/​www.w3.org/​2000/​svg" width="993" height="550">............'; 
a.download = 'image.svg'; 
a.click(); 
+0

所以,你想生成从一个APNG SMIL/CSS动画SVG,不使用画布?不是一件容易的事情;-)它需要一个自制的svg解析器+渲染器,支持SMIL或CSS动画,一个自制的APNG编码器/ LZIP压缩器。可以做到,理论上... – Kaiido

+0

我可以在服务器端在java?我的svg包含外部对象,其中包含图像和html代码 – Developer

+0

所以让我们说清楚: - 你想如何处理你的动画SVG?你想要一个APNG,一个gif还是一连串的pngs?如果你在考虑Batik,他们确实支持SMIL,但是他们不支持svg中的HTML,我知道唯一支持这两者的用户代理都是Web浏览器。对于动画svg + HTML,试试canvg库,它们能够在画布上栅格化一些svg动画。 – Kaiido

回答

-1

您可以使用Inkscape中的SVG图像转换为PNG它可以安装在Linux和Windows计算机上,但我会建议Linux的更多详细信息,请参阅https://inkscape.org/en/

+0

Inkscape是否支持导出动画SVG到APNG? [我想他们不会...](https://inkscape.org/en/learn/animation/) – Kaiido

+0

你需要转换为gif,不支持apng。你也可以使用http://www.imagemagick.org/或ghostscript。 –

+0

但是我怀疑自从f.a.q链接到Inkscape本身并不支持svg动画的情况下,即使动画gif转换也是支持的。 – Kaiido