drawImage() 方法提供了多種方式在Canvas上繪制圖像。

向畫布上面繪制圖片:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>HTML canvas drawImage() 方法使用-菜鳥教程(cainiaoplus.com)</title>
</head>
<body>
<p>要使用的圖片:</p>
<img id="scream" src="views.png">
<p>畫布:</p>
<canvas id="myCanvas" width="300" height="200" style="border:1px solid #d3d3d3;">
您的瀏覽器不支持 HTML5 canvas 標(biāo)簽。
</canvas>
<script>
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var img=document.getElementById("scream");
img.onload = function()
{
ctx.drawImage(img,10,10);
}
</script>
</body>
</html>測(cè)試看看 ?/?IEFirefoxOperaChromeSafari
Internet Explorer 9、Firefox、Opera、Chrome 和 Safari 支持 drawImage() 方法。
注意:Internet Explorer 8 及之前的版本不支持 <canvas> 元素。
drawImage() 方法將圖像,畫布或視頻繪制到畫布上。
drawImage() 方法還可以繪制圖像的一部分,和/或增加/減小圖像的大小。
在畫布上定位圖像:
| JavaScript 語法: | context.drawImage(img,x,y); |
|---|
在畫布上定位圖像,并規(guī)定圖像的寬度和高度:
| JavaScript 語法: | context.drawImage(img,x,y,width,height); |
|---|
剪切圖像,并在畫布上定位被剪切的部分:
| JavaScript 語法: | context.drawImage(img,sx,sy,swidth,sheight,x,y,width,height); |
|---|
| 參數(shù) | 描述 | |
|---|---|---|
| img | 規(guī)定要使用的圖像、畫布或視頻。 | |
| sx | 可選。開始剪切的 x 坐標(biāo)位置。 | |
| sy | 可選。開始剪切的 y 坐標(biāo)位置。 | |
| swidth | 可選。被剪切圖像的寬度。 | |
| sheight | 可選。被剪切圖像的高度。 | |
| x | 在畫布上放置圖像的 x 坐標(biāo)位置。 | |
| y | 在畫布上放置圖像的 y 坐標(biāo)位置。 | |
| width | 可選。要使用的圖像的寬度(伸展或縮小圖像)。 | |
| height | 可選。要使用的圖像的高度(伸展或縮小圖像)。 |
在畫布上對(duì)圖像進(jìn)行定位,然后規(guī)定圖像的寬度和高度:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>HTML canvas drawImage() 方法使用-菜鳥教程(cainiaoplus.com)</title>
</head>
<body>
<p>要使用的圖片:</p>
<img id="scream" src="views.png">
<p>畫布:</p>
<canvas id="myCanvas" width="250" height="300" style="border:1px solid #d3d3d3;">
您的瀏覽器不支持 HTML5 canvas 標(biāo)簽。
</canvas>
<script>
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var img=document.getElementById("scream");
img.onload = function()
{
ctx.drawImage(img,10,10,150,180);
}
</script>
</body>
</html>測(cè)試看看 ?/?剪切圖片,并在畫布上對(duì)被剪切的部分進(jìn)行定位:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>HTML canvas drawImage() 方法使用-菜鳥教程(cainiaoplus.com)</title>
</head>
<body>
<p>圖片應(yīng)用:</p>
<img id="scream" src="views.png">
<p>畫布:</p>
<canvas id="myCanvas" width="300" height="150" style="border:1px solid #d3d3d3;">
您的瀏覽器不支持 HTML5 canvas 標(biāo)簽。
</canvas>
<script>
document.getElementById("scream").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);
};
</script>
</body>
</html>測(cè)試看看 ?/?要使用的視頻(請(qǐng)按下播放鍵以開始演示):
畫布:
JavaScript(每 20 毫秒,代碼就會(huì)繪制視頻的當(dāng)前幀):
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>HTML canvas drawImage() 方法使用-菜鳥教程(cainiaoplus.com)</title>
</head>
<body>
<p>要使用的視頻:</p>
<video id="video1" controls width="270" autoplay>
<source src="movie.mp4" type='video/mp4'>
<source src="movie.ogg" type='video/ogg'>
<source src="movie.webm" type='video/webm'>
</video>
<p>畫布 (代碼在每20毫秒繪制當(dāng)前的視頻幀):</p>
<canvas id="myCanvas" width="270" height="135" style="border:1px solid #d3d3d3;">
您的瀏覽器不支持 HTML5 canvas 標(biāo)簽。
</canvas>
<script>
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);
</script>
</body>
</html>測(cè)試看看 ?/?