我有一个要转换为PNG的SVG。它仅包含文本,实际上是D3 wordcloud。这是代码:
var img = document.createElement( "img" );
img.setAttribute( "src", "data:image/svg+xml;base64," + btoa(injected) );
img.onload = function()
{
ctx.drawImage( img, 0, 0, canvas.width, canvas.height );
var uri = canvas
.toDataURL('image/png');
console.log(ctx);
var link = document.createElement("a");
document.body.appendChild(link);
link.download = "wordcloud.png";
link.href = uri;
link.click();
};
这在Chrome和Safari上可以正常工作,产生200kb的PNG。在Firefox上,它会生成5kb的空白图片。我已经检查过要作为图像源输入的数据(它与两个浏览器都匹配)。一切正常,直到到达toDataUrl
并产生奇怪的结果为止。
在其他浏览器上,结果很好,所有数据都在那里。但是在firefox上,您会得到一个非常短的链接,其中大部分都是重复的 AAAAA
是否缺少我要添加的东西,以使其与FF兼容?我看过其他一些与我类似的问题,但找不到任何解决方法