【发布时间】:2015-04-25 18:31:27
【问题描述】:
我正在尝试使用画布将外部 svg 图标转换为 base64 png。它适用于除 Firefox 之外的所有浏览器,它会引发错误“NS_ERROR_NOT_AVAILABLE”。
var img = new Image();
img.src = "icon.svg";
img.onload = function() {
var canvas = document.createElement("canvas");
canvas.width = this.width;
canvas.height = this.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(this, 0, 0);
var dataURL = canvas.toDataURL("image/png");
return dataURL;
};
有人可以帮我解决这个问题吗?提前致谢。
【问题讨论】:
-
你的 svg 图标有宽度和高度属性吗?如果是,它们是百分比吗?
-
嗨罗伯特,这是一个 svg 文件而不是 svg dom 元素,我们可以为其分配任何宽度/高度。我在页面中使用这个 svg 作为
-
这不能回答我的问题。 icon.svg 是否在根
<svg>元素上具有宽度/高度属性。如果是,这些属性值是百分比吗? -
svg 图标是使用 Adobe Illustrator 生成的,我在 svg 文件中看不到任何宽度/高度。
-
我遇到了同样的问题,只是对
drawImage()的调用甚至没有引发错误。在
标签: javascript firefox svg html5-canvas base64