将base64编码的svg转换为png

时间:2015-03-26 08:32:31

标签: c# svg png

我需要将base64编码的svg转换为png,然后将其返回给客户端进行渲染。

我的想法是我使用d3.js在客户端上绘制svg,我需要将其转换为png。

我尝试使用javascript root并在画布上编写svg,然后将其转换为DataUrl,但IE在所有版本上都存在问题,因此这不是一个可行的选项。

我在线搜索了一下,我能找到的只是Inkscape。

由于服务器访问受限,这对我来说不是一个可行的解决方案,坦率地说,我不认为为简单功能安装整个应用程序是个好主意。

是否有其他解决方案可以采用base 64编码的svg并返回可以在图像中显示的png?

2 个答案:

答案 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");
    });
});

https://jsfiddle.net/mfvmoy64/155