我有一张名为餐巾纸的画布。当我调用以下函数时,它应该将图像和餐巾画布绘制到内存中的另一个画布上。它适用于每个浏览器,但IOS Safari。该操作似乎没有超过画布的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;
}
答案 0 :(得分:7)
您需要等待图像数据加载才能使用它...
var img = new Image();
img.onload = function(){
// do stuff here with img
};
img.src = picurl;
// not here