Javascript 在画布中,是否有一种方法可以告诉img.src何时完成加载?
在向画布添加图像后,我尝试将画布转换为dataURL。我遇到的问题是在将图像加载到画布之前创建dataURL。有没有办法知道图像何时加载完毕Javascript 在画布中,是否有一种方法可以告诉img.src何时完成加载?,javascript,html,canvas,Javascript,Html,Canvas,在向画布添加图像后,我尝试将画布转换为dataURL。我遇到的问题是在将图像加载到画布之前创建dataURL。有没有办法知道图像何时加载完毕 var myCanvas = document.getElementById('canvas'); var ctx = myCanvas.getContext('2d'); var img = new Image; img.onload = function(){ ctx.
var myCanvas = document.getElementById('canvas');
var ctx = myCanvas.getContext('2d');
var img = new Image;
img.onload = function(){
ctx.drawImage(img,0,0);
};
img.src = URL;
您已经在使用
img.onload
处理程序,该处理程序在图像加载完成后运行。由于ctx.drawImage
是同步的,因此保证在执行下一行代码之前在画布上渲染图像
因此,您只需在onload
回调中运行myCanvas.toDataURL()
,然后在drawImage
之后,您将获得包含图像的画布的Base64,如下所示:
img.onload = function(){
ctx.drawImage(img,0,0);
document.getElementById("imgURL").value = myCanvas.toDataURL();
}
您已经在使用
img.onload
处理程序,该处理程序在图像加载完成后运行。由于ctx.drawImage
是同步的,因此保证在执行下一行代码之前在画布上渲染图像
因此,您只需在onload
回调中运行myCanvas.toDataURL()
,然后在drawImage
之后,您将获得包含图像的画布的Base64,如下所示:
img.onload = function(){
ctx.drawImage(img,0,0);
document.getElementById("imgURL").value = myCanvas.toDataURL();
}
是的,您已经在使用它:
img.onload
。所以只需从回调中执行您的工作。是的,您已经在使用它:img.onload
。所以只要在回调中完成你的工作。