HTML canvas drawImage() 方法
Canvas 对象的 drawImage() 方法在画布上绘制图像、画布或视频
drawImage() 方法也能够绘制图像的某些部分,以及/或者增加或减少图像的尺寸
语法
context.drawImage(img,x,y)
将图像绘制到画布上,并设定图像的宽度和高度
context.drawImage(img,x,y,width,height)
剪切图像,并在画布上定位被剪切的部分
context.drawImage(img,sx,sy,swidth,sheight,x,y,width,height)
参数值
参数 | 描述 |
---|---|
img | 规定要使用的图像、画布或视频 |
sx | 可选。开始剪切的 x 坐标位置 |
sy | 可选。开始剪切的 y 坐标位置 |
swidth | 可选。被剪切图像的宽度 |
sheight | 可选。被剪切图像的高度 |
x | 在画布上放置图像的 x 坐标位置 |
y | 在画布上放置图像的 y 坐标位置 |
width | 可选。要使用的图像的宽度(伸展或缩小图像) |
height | 可选。要使用的图像的高度(伸展或缩小图像) |
浏览器支持
Internet Explorer 9、Firefox、Opera、Chrome 和 Safari 支持 drawImage() 方法
Internet Explorer 8 及之前的版本不支持 <canvas> 元素
要使用的图片
范例
向画布上面绘制图片
var img1 = document.createElement("img"); img1.src="/static/i/img3.jpg"; img1.onload= function() { var c=document.getElementById("canvas-1"); var canvOK=1; try {c.getContext("2d");} catch (er) {canvOK=0;} if (canvOK==1) { var ctx=c.getContext("2d"); var img= this ctx.drawImage(img,10,10); } }
范例 2
在画布上对图像进行定位,然后规定图像的宽度和高度
var img2 = document.createElement("img"); img2.src="/static/i/img3.jpg"; img2.onload= function() { var c=document.getElementById("canvas-2"); var canvOK=1; try {c.getContext("2d");} catch (er) {canvOK=0;} if (canvOK==1) { var ctx=c.getContext("2d"); var img= this; ctx.drawImage(img,10,10,150,180); } }
范例
剪切图片,并在画布上对被剪切的部分进行定位
var img3 = document.createElement("img"); img3.src="/static/i/img3.jpg"; img3.onload= function() { var c=document.getElementById("canvas-3"); var canvOK=1; try {c.getContext("2d");} catch (er) {canvOK=0;} if (canvOK==1) { var ctx=c.getContext("2d"); var img= this; ctx.drawImage(img,90,130,50,60,10,10,50,60); } }
范例
要使用的视频 (请按下播放键以开始演示)
画布
每 20 毫秒,代码就会绘制视频的当前帧)
var v=document.getElementById("video1"); var c=document.getElementById("canvas-4"); ctx=c.getContext('2d'); v.addEventListener('play',function() {var i=window.setInterval(function() {ctx.drawImage(v,5,5,260,125)},20);},false); v.addEventListener('pause',function() {window.clearInterval(i);},false); v.addEventListener('ended',function() {clearInterval(i);},false);