【问题标题】:Canvas drawImage inline svg doesn't work on FirefoxCanvas drawImage inline svg 在 Firefox 上不起作用
【发布时间】:2016-11-01 14:13:48
【问题描述】:

这是一个将 svg 转换为画布的示例:http://jsfiddle.net/Na6X5/944/

var can = document.getElementById('canvas1');
var ctx = can.getContext('2d');

var svg = document.getElementById('mySVG');

var img = new Image();
img.onload = function() {
console.log(img.width, img.height)
document.getElementById('canvas1').width = 300
document.getElementById('canvas1').height = 200
ctx.drawImage(img, 0, 0, 300, 200);
}
img.src = "data:image/svg+xml," + encodeURIComponent(svg.outerHTML)

这在 Chrome(51.0) 上运行良好。但在 Firefox(47.0.1) 上生成一个空画布,没有错误。

此示例适用于 Firefox http://codepen.io/keithwyland/pen/umova,但将图像的 src 更改为内联 svg 会产生上面列出的问题 http://codepen.io/Ewhite613/pen/YWZoGy

【问题讨论】:

    标签: javascript firefox canvas svg


    【解决方案1】:

    SVG 图像数据必须具有非百分比的宽度和高度属性。

    【讨论】:

    • canvas html 元素的样式也必须为display:block
    猜你喜欢
    • 1970-01-01
    • 2020-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-06
    • 2013-12-09
    • 1970-01-01
    • 2020-07-24
    相关资源
    最近更新 更多