HTML canvas drawImage() 方法
用到的图像:
实例
向画布上面绘制图片:
JavaScript:
window.onload = function() {
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var img = document.getElementById("scream");
ctx.drawImage(img, 10, 10);
};
亲自试一试 »
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var img = document.getElementById("scream");
ctx.drawImage(img, 10, 10);
};
浏览器支持
表中的数字表示完全支持该方法的第一个浏览器版本。
方法 | |||||
---|---|---|---|---|---|
drawImage() | Yes | 9.0 | Yes | Yes | Yes |
定义和用法
drawImage() 方法在画布上绘制图像、画布或视频。
drawImage() 方法也能够绘制图像的某些部分,以及/或者增加或减少图像的尺寸。
注释:您不能在图像加载之前调用 drawImage() 方法。 为了确保图像已经加载,您可以从 window.onload() 或从 document.getElementById("imageID").onload 调用 drawImage()。
JavaScript 语法
在画布上定位图像:
JavaScript syntax: | context.drawImage(img,x,y); |
---|
在画布上定位图像,并规定图像的宽度和高度:
JavaScript syntax: | context.drawImage(img,x,y,width,height); |
---|
剪切图像,并在画布上定位被剪切的部分:
JavaScript syntax: | context.drawImage(img,sx,sy,swidth,sheight,x,y,width,height); |
---|
参数值
参数 | 描述 | 试一试 |
---|---|---|
img | 规定要使用的图像、画布或视频。 | |
sx | 可选。开始剪切的 x 坐标位置。 | 试一试 » |
sy | 可选。开始剪切的 y 坐标位置。 | 试一试 » |
swidth | 可选。被剪切图像的宽度。 | 试一试 » |
sheight | 可选。被剪切图像的高度。 | 试一试 » |
x | 在画布上放置图像的 x 坐标位置。 | 试一试 » |
y | 在画布上放置图像的 y 坐标位置。 | 试一试 » |
width | 可选。要使用的图像的宽度(伸展或缩小图像)。 | 试一试 » |
height | 可选。要使用的图像的高度(伸展或缩小图像)。 | 试一试 » |
更多实例
实例
在画布上对图像进行定位,然后规定图像的宽度和高度:
JavaScript:
window.onload = function() {
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var img = document.getElementById("scream");
ctx.drawImage(img, 10, 10, 150, 180);
};
亲自试一试 »
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var img = document.getElementById("scream");
ctx.drawImage(img, 10, 10, 150, 180);
};
实例
剪切图片,并在画布上对被剪切的部分进行定位:
JavaScript:
window.onload = function() {
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var img = document.getElementById("scream");
ctx.drawImage(img, 90, 130, 50, 60, 10, 10, 50, 60);
};
亲自试一试 »
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var img = document.getElementById("scream");
ctx.drawImage(img, 90, 130, 50, 60, 10, 10, 50, 60);
};
实例
要使用的视频(请按下播放键以开始演示):
画布:
JavaScript(每 20 毫秒,代码就会绘制视频的当前帧):
var v = document.getElementById("video1");
var c = document.getElementById("myCanvas");
var ctx = c.getContext('2d');
var i;
v.addEventListener('play',function() {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);
亲自试一试 »
var c = document.getElementById("myCanvas");
var ctx = c.getContext('2d');
var i;
v.addEventListener('play',function() {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);