HTML canvas drawImage() 方法
要使用的圖片:
實例
向畫布上面繪製圖片:
JavaScript:
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var img=document.getElementById("scream");
ctx.drawImage(img,10,10);
var ctx=c.getContext("2d");
var img=document.getElementById("scream");
ctx.drawImage(img,10,10);
嘗試一下»
瀏覽器支持
Internet Explorer 9、Firefox、Opera、Chrome 和Safari 支持drawImage() 方法。
注意: Internet Explorer 8及之前的版本不支持<canvas>元素。
定義和用法
drawImage() 方法在畫布上繪製圖像、畫布或視頻。
drawImage() 方法也能夠繪製圖像的某些部分,以及/或者增加或減少圖像的尺寸。
JavaScript 語法
在畫布上定位圖像:
JavaScript 語法: | context.drawImage(img,x,y); |
---|
在畫布上定位圖像,並規定圖像的寬度和高度:
JavaScript 語法: | context.drawImage(img,x,y,width,height); |
---|
剪切圖像,並在畫布上定位被剪切的部分:
JavaScript 語法: | 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:
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var img=document.getElementById("scream");
ctx.drawImage(img,10,10,150,180);
var ctx=c.getContext("2d");
var img=document.getElementById("scream");
ctx.drawImage(img,10,10,150,180);
嘗試一下»
實例
剪切圖片,並在畫布上對被剪切的部分進行定位:
JavaScript:
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 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");
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);
var c=document.getElementById("myCanvas");
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);
嘗試一下»