CanvasRenderingContext2D.drawImage()
方法可以在Canvas上绘制图像。
语法
1 | void ctx.drawImage(image, dx, dy); |
参数
image
绘制到上下文的元素。允许任何的 canvas 图像源(CanvasImageSource),例如:HTMLImageElement,HTMLVideoElement,或者 HTMLCanvasElement。
dx
目标画布的左上角在目标canvas上 X 轴的位置。dy
目标画布的左上角在目标canvas上 Y 轴的位置。
dWidth
在目标画布上绘制图像的宽度。 允许对绘制的图像进行缩放。 如果不说明, 在绘制时图片宽度不会缩放。
dHeight
在目标画布上绘制图像的高度。 允许对绘制的图像进行缩放。 如果不说明, 在绘制时图片高度不会缩放。sx
需要绘制到目标上下文中的,源图像的矩形选择框的左上角 X 坐标。
sy
需要绘制到目标上下文中的,源图像的矩形选择框的左上角 Y 坐标。
sWidth
需要绘制到目标上下文中的,源图像的矩形选择框的宽度。如果不说明,整个矩形从坐标的sx和sy开始,到图像的右下角结束。
sHeight
需要绘制到目标上下文中的,源图像的矩形选择框的高度。
易错点
需要注意的是,调用drawImage时,若图片没有加载完,什么也不会发生。
因此你应该用load时间来保证不会在加载完毕之前使用这个图片
1 | var img = new Image(); // 创建img元素 |
1 | <body onload="draw();"> |
以上这段代码我在执行的时候,却没有加载出图片。
后来我将图片压缩了下,就可以正常工作了。