加载图像并将其放置在画布上
var image = new Image(); // 请参阅有关创建图像的注释 image.src = "imageURL"; image.onload = function(){ ctx.drawImage(this,0,0); }
创建图像
有几种创建图像的方法
new Image()
document.createElement("img")
<img src = 'imageUrl' id='myImage'> 作为HTML正文的一部分,并通过 document.getElementById('myImage')
该图像是 HTMLImageElement
Image.src属性
该图像src可以是任何有效的图像URL或编码的dataURL。有关图像格式和支持的更多信息,请参见本主题的备注。
image.src = "http://my.domain.com/images/myImage.jpg"
image.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAUEBAAAACwAAAAAAQABAAACAkQBADs=" *
* dataURL是包含黑色的1乘1像素gif图像
关于加载和错误的说明
设置其src属性后,图像将开始加载。加载是同步的,但是onload直到函数或代码退出/返回后才调用该事件。
如果您从页面获取图像(例如document.getElementById("myImage")),并且图像src已设置,则可能已加载或可能未加载。您可以检查与图像的状态HTMLImageElement.complete,这将是true,如果完成。这并不意味着图像已经加载,这意味着它已经
已加载
有一个错误
尚未设置src属性,该属性等于空字符串 ""
如果图像来自不可靠的来源,并且由于各种原因可能无法访问,则它将生成错误事件。发生这种情况时,图像将处于损坏状态。如果随后尝试将其绘制到画布上,则会引发以下错误
Uncaught DOMException: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The HTMLImageElement provided is in the 'broken' state.
通过提供image.onerror = myImgErrorHandler事件,您可以采取适当的措施来防止错误。