getImageData

書式

コンテキスト.getImageData(x,y,w,h)

属性

属性名/パラメーター 内 容
x X座標を指定します。
y Y座標を指定します。
w 取得する横幅を指定します。
h 取得する縦幅を指定します。

説明

Canvas内に描画されている画像/ピクセルデータを読み出します。読み出した結果はJavaScriptの配列に格納されます(通常の配列でありTyped Arrayではありません。つまりUInt8Array配列では返されません)。ピクセルデータはgetImageData()により読み出したオブジェクトのdataプロパティに格納されています。配列の4つの要素で1ピクセルを示します。これは「赤の輝度」「緑の輝度」「青の輝度」「不透明度(αチャンネル)」の順番になっています。10ピクセルであれば10×4=40要素の配列になります。

サンプルコード [実行]

<!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();
imgObj.src = "photo.jpg";
imgObj.onload = function(){
context.drawImage(imgObj, 0, 0);
var canvasImage = context.getImageData(0,0, 16, 16);
var pixels = canvasImage.data;
var ele = document.getElementById("result");
ele.innerHTML = "ピクセル総数:"+pixels.length/4;
}
}
</script>
</head>
<body>
<h1>Sample</h1>
<canvas id="imgCanvas" width="320" height="240" style="border:1px black solid"></canvas>
<div id="result"></div>
</body>
</html>