此问题已在此处有答案:
Firefox error rendering an SVG image to HTML5 canvas with drawImage(3个答案)
2天前关闭。
截至2天前,社区正在审查是否重新讨论此问题。
我试图转换SVG到PNG图像使用画布作为“代理”。
SVG已成功转换为PNG,但此SVG为shell SVG。
以下是JSFiddle:https://jsfiddle.net/8mqtLw6p/
var img = new Image();
var svg = new Blob([svgString], {
type: "image/svg+xml;charset=utf-8"
});
var url = DOMURL.createObjectURL(svg);
img.onload = function() {
ctx.drawImage(img, 0, 0);
var png = canvas.toDataURL("image/png");
var mg = document.createElement("img");
mg.setAttribute("src", png);
document.body.appendChild(canvas);
document.body.appendChild(mg);
DOMURL.revokeObjectURL(png);
};
img.setAttribute("src", url);
我不知道为什么它不与这个特定的SVG工作。
你能告诉我为什么吗?
**编辑:**它可以在Chromium上工作,但不能在FireFox上工作。
1条答案
按热度按时间lmyy7pcs1#
为了能够绘制位图图像,它需要大小(宽度和高度)。如果SVG没有指定大小,并且您希望在浏览器中呈现时复制它,则可以使用getBoundingClientRect()来获取宽度和高度。
现在,你的SVG是相当大的,我只是用一个圆圈取代了所有的路径,并修改了viewBox一点。