★Canvasリファレンス

私たちはカジノサイトを独自にレビューしています。当社のリンクを通じてサインアップすると、追加料金なしで当社に手数料が発生する場合があります。

.

imagedata . data …… RGBA順の一次配列データを返す
Internet Explorer9
Firefox2Firefox3Firefox4
Google Chrome1Google Chrome2Google Chrome3Google Chrome4Google Chrome5Google Chrome6
Safari3Safari4Safari5
Opera9Opera10
広告



data属性は、RGBAの順で0~255の範囲の数値が一次配列となったデータを返します。
この配列データは、ImageDataオブジェクトの各ピクセルが保有している色と透明度を表します。

ImageDataオブジェクトの各ピクセルは、ImageDataオブジェクトの左上から右下に順番に並んでおり h×w×4つの整数 で表すことができます。
hはImageDataオブジェクトの上からの位置を表します。wは高さhにおける左からの位置を表します。
4つの整数はそれぞれ0~255の範囲の数値で、順番に赤(R)・緑(G)・青(B)・透明度(A)を表します。

■使用例

HTML + JavaScriptソース

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>canvasで図形を描く</title>
<script type="text/javascript">
<!--
function test() {
  //描画コンテキストの取得
  var canvas = document.getElementById('sample');
  if (canvas.getContext) {
    var context = canvas.getContext('2d');
    //寸法100×80のImageDataオブジェクトを生成
    var img01 = context.createImageData(100, 80);

    //ImageDataオブジェクトのRGBA値をテキストとして描画
    context.fillText(img01.data, 20, 20);
    context.fillText("R:"+img01.data[0], 20, 40);
    context.fillText("G:"+img01.data[1], 20, 60);
    context.fillText("B:"+img01.data[2], 20, 80);
    context.fillText("A:"+img01.data[3], 20, 100);
  }
}
//-->
</script>
</head>
<body onLoad="test()">
<h2>Canvasで図形を描く</h2>
<canvas width="300" height="150" id="sample" style="background-color:yellow;">
図形を表示するには、canvasタグをサポートしたブラウザが必要です。
</canvas>
</body>
</html>
↓↓↓

ブラウザ上の表示

Canvasで図形を描く


図形を表示するには、canvasタグをサポートしたブラウザが必要です。

以下は、W3Cのウェブサイトに掲載されているCanvasによる作成例です。
画像ファイルからエッジを検出して、元画像の上に検出されたエッジを重ねています。

■W3Cのウェブサイトに掲載されている使用例

HTML + JavaScriptソース

<!DOCTYPE HTML>
<html>
 <head>
  <title>エッジ検出デモ</title>
  <script>
   var image = new Image();
   function init() {
     image.onload = demo;
     image.src = "image.jpeg";
   }
   function demo() {
     var canvas = document.getElementsByTagName('canvas')[0];
     var context = canvas.getContext('2d');

     // canvas上にイメージを描画(後からこの画像の上にエッジ検出結果が重なります)
     context.drawImage(image, 0, 0);

     // 操作するイメージデータを取得
     var input = context.getImageData(0, 0, canvas.width, canvas.height);

     // データを入れるための空のImageDataオブジェクトを生成
     var output = context.createImageData(canvas.width, canvas.height);

     // 変数を定義
     // (ここで幅と高さに input.width と input.height を使用する点に注意
     // canvas.width と canvas.height を使用した場合と比べると
     // 高解像度のディスプレイで表示した際に違いが出るでしょう)
     var w = input.width, h = input.height;
     var inputData = input.data;
     var outputData = output.data;

     // エッジの検出
     for (var y = 1; y < h-1; y += 1) {
       for (var x = 1; x < w-1; x += 1) {
         for (var c = 0; c < 3; c += 1) {
           var i = (y*w + x)*4 + c;
           outputData[i] = 127 + -inputData[i - w*4 - 4] -   inputData[i - w*4] - inputData[i - w*4 + 4] +
                                 -inputData[i - 4]       + 8*inputData[i]       - inputData[i + 4] +
                                 -inputData[i + w*4 - 4] -   inputData[i + w*4] - inputData[i + w*4 + 4];
         }
         outputData[(y*w + x)*4 + 3] = 255; // alpha
       }
     }

     // 操作後にイメージを描画する
     context.putImageData(output, 0, 0);
   }
  </script>
 </head>
 <body onload="init()">
  <h3>元画像のimage.jpeg</h3>
  <p><img src="image.jpeg"></p>

  <h3>元画像の上にcanvasでエッジ検出した結果を重ねたもの</h3>
  <canvas width="400" height="300"></canvas>
 </body>
</html>

■関連項目

<canvas> …… 図形を描くHTML5から追加
広告



山田 太郎
テック・リード
山田太郎は、ウェブ開発やグラフィックスプログラミングに10年以上の経験を持つテクノロジーの専門家です。特にHTML5 CanvasやJavaScript、インタラクティブメディアに精通しており、動的なユーザーインターフェースや最先端のウェブアプリケーションの開発に携わってきました。複雑な図形描画や画像操作、リアルタイムグラフィックスに関する知識が豊富で、ウェブ技術の限界を追求する開発者たちにとって頼りになる存在です。知識の共有に情熱を持ち、初心者からプロフェッショナルまで幅広く支援するため、技術フォーラムやブログにも積極的に貢献しています。

ギャンブルガイド もっと見る

カジノファインダー

どのカジノが自分に最適か分からないですか?

サインアップは必要なく、1 分以内に最適なブックメーカーを簡単に見つけることができます。
カジノを探す
Back
質問
Select one of the following options
{"is_any_tile":true}

どのカジノが自分に最適か分からないですか?

Back
Restart
やったー!
これはあなたの選択に基づいた最高のカジノです...
61 users signed up
もっと表示する