drawImage

書式

コンテキスト.drawImage(imageObj,x,y)
コンテキスト.drawImage(imageObj,x,y,w,h)
コンテキスト.drawImage(imageObj,srcX,srcY,srcW,srcH,x,y,w,h)

属性

属性名/パラメーター 内 容
imageObj 画像オブジェクトを指定します。HTML文書内の画像やCanvas要素、Video要素も指定できます。
x X座標を指定します。
y Y座標を指定します。
w 表示する画像の横幅を指定します。
h 表示する画像の縦幅を指定します。
srcX 表示する画像上の開始X座標を指定します。(クリッピングX座標)
srcY 表示する画像上の開始Y座標を指定します。(クリッピングY座標)
srcW 表示する画像の横幅を指定します。(クリッピングの横幅)
srcH 表示する画像の縦幅を指定します。(クリッピングの縦幅)

説明

指定した位置に画像を表示します。パラメータの数によって表示処理が異なるので注意が必要です。
描画する画像を拡大縮小した場合、ブラウザによって描画結果が異なります。また、drawImage()はlineTo()などパスを構築するメソッドとは異なりサブピクセル処理を行いません。つまり座標(0.45, 0.25)のように指定しても座標(0,0)に描画したのと同じ結果になります。

サンプルコード [実行]

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Sample</title>
<script>
window.onload = function(){
var canvasObj = document.getElementById("imgCanvas");
var context = canvasObj.getContext("2d");
var imgObj = new Image(120,80);
imgObj.src = "photo.jpg";
imgObj.onload = function(){
var x = Math.random() * 200;
var y = Math.random() * 160;
context.drawImage(imgObj, x, y);
setTimeout(arguments.callee, 100);
}
}
</script>
</head>
<body>
<h1>Sample</h1>
<canvas id="imgCanvas" width="320" height="240" style="border:1px black solid"></canvas>
</body>
</html>