我需要将base64编码的svg转换为png,然后将其返回给客户端进行渲染。
我的想法是我使用d3.js在客户端上绘制svg,我需要将其转换为png。
我尝试使用javascript root并在画布上编写svg,然后将其转换为DataUrl,但IE在所有版本上都存在问题,因此这不是一个可行的选项。
我在线搜索了一下,我能找到的只是Inkscape。
由于服务器访问受限,这对我来说不是一个可行的解决方案,坦率地说,我不认为为简单功能安装整个应用程序是个好主意。
是否有其他解决方案可以采用base 64编码的svg并返回可以在图像中显示的png?
答案 0 :(得分:0)
我遇到了同样的问题,但是我能够将SVG渲染成图像,以便用户可以右键单击下载图像或右键单击画布。 Canvg还有一个似乎可以与IE一起使用的库,但它对于复杂的SVG来说并不准确,因此无法满足我的需求。也许它会对你有所帮助。
我的question中的代码可以在IE中使用,只需使用IMG或Canvas对象,您不需要调用toDataURI。
结帐Canvg,这可能会有所帮助。
祝你好运!如果您找到更好的解决方案,请告诉我。 : - )答案 1 :(得分:0)
我发现因为我必须支持IE 11,所以我使用" canvas-toBlob.js"然后使用canvas将blob转换为PNG。和" FileSaver.js"
$("#save-btn").click(function()
{
$("#myChart").get(0).toBlob(function(blob)
{
saveAs(blob, "chart_1.png");
});
});