javascript - Canvas DrawImage 不适用于 IOS Safari

标签 javascript ios html canvas safari

我有一个名为 napkin 的 Canvas 。当我调用以下函数时,它应该将图像和餐巾 Canvas 绘制到内存中的另一个 Canvas 上。它适用于除 IOS Safari 之外的所有浏览器。该操作似乎没有超过 Canvas 的 IOS 内存上限。我通过调用 k().toDataURL() 来测试它。有什么想法吗?

function k() {
    var canvas = document.createElement('canvas');
    var napkin = document.getElementById("napkin");
    var img = new Image();
    img.src = picurl;
    var ctx = canvas.getContext("2d");
    var imgdata = new Image();
    imgdata.src = napkin.toDataURL();
    canvas.width = img.width;
    canvas.height = img.height;
    ctx.drawImage(img, 0, 0);
    ctx.globalAlpha = 0.5;
    ctx.drawImage(imgdata, 0, 0);
    return canvas;
}

最佳答案

使用前需要等待图片数据加载...

var img = new Image();
img.onload = function(){
    // do stuff here with img
};
img.src = picurl;
// not here

关于javascript - Canvas DrawImage 不适用于 IOS Safari,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21873368/

相关文章:

jquery - 填充对具有绝对定位的下拉菜单有意想不到的影响

javascript - 浏览器是否处理 dom 更改匹配?

javascript - 解释封装的匿名函数语法

ios - 如何判断 'Mobile Network Data' 在 iOS 中是启用还是禁用(即使通过 WiFi 连接)?

ios - MPNowPlayingInfoCenter 适用于模拟器,但不适用于设备

javascript - Foundation Zurb 无法更改工具提示文本

javascript - 是什么导致它返回 NaN?

javascript - 拉伸(stretch)背景以适应 iPhone 屏幕的问题

ios - 如何快速获取电池信息?

html - 根据屏幕大小隐藏和显示 bootstrap 3 类