canvasタグを使ってグラフィックスを描画する方法をわかりやすく解説

スポンサーリンク
スポンサーリンク

canvasタグの概要

グラフィックスの描画 HTMLタグ

<canvas width=”幅” height=”高さ”></canvas>

概要 canvasタグは、JavaScriptを使用してグラフィックスやアニメーションを描画するためのHTMLタグです。 線、図形、テキスト、画像の描画が可能で、ゲームやデータビジュアライゼーションなどにも利用されます。

  • JavaScriptを使用して、キャンバス内に図形や画像を描画できる。
  • アニメーションやインタラクティブなコンテンツの作成が可能。
  • SVGと異なり、ピクセル単位での描画が行われる。

canvasタグの基本的な使い方

以下の例では、JavaScriptを使ってキャンバス内に四角形を描画します。

<canvas id="myCanvas" width="400" height="200"></canvas>

<script>
  var canvas = document.getElementById("myCanvas");
  var ctx = canvas.getContext("2d");
  ctx.fillStyle = "blue";
  ctx.fillRect(50, 50, 150, 100);
</script>

表示例:

線を描画する

キャンバス上に直線を描画する方法を示します。

<canvas id="lineCanvas" width="400" height="200"></canvas>

<script>
  var canvas = document.getElementById("lineCanvas");
  var ctx = canvas.getContext("2d");
  ctx.beginPath();
  ctx.moveTo(50, 50);
  ctx.lineTo(200, 150);
  ctx.strokeStyle = "red";
  ctx.lineWidth = 5;
  ctx.stroke();
</script>

表示例:

円を描画する

以下のコードでは、キャンバス内に円を描画します。

<canvas id="circleCanvas" width="400" height="200"></canvas>

<script>
  var canvas = document.getElementById("circleCanvas");
  var ctx = canvas.getContext("2d");
  ctx.beginPath();
  ctx.arc(200, 100, 50, 0, Math.PI * 2);
  ctx.fillStyle = "green";
  ctx.fill();
</script>

表示例:

SEOとアクセシビリティへの影響

  • SEO効果: canvasの内容は検索エンジンには認識されないため、適切な代替コンテンツ(altテキストや説明文)を提供することが推奨される。
  • アクセシビリティ: canvasタグ内にテキストを記述すると、JavaScript未対応の環境でも意味が伝わる。

注意事項

  • JavaScriptを使用しないと何も表示されないため、代替テキストを用意することが望ましい。
  • 動的に内容を変更する際は、clearRect()を使用して前の描画をクリアする。
  • アニメーションはrequestAnimationFrame()を使用するとスムーズに動作する。

よくある質問

Q: canvasとSVGの違いは?
A: canvasはピクセルベースの描画で、動的な変更が必要な場合に向いている。一方、SVGはベクターグラフィックスで、拡大・縮小時に画質が劣化しない。
Q: canvasの内容を画像として保存できますか?
A: はい、canvas.toDataURL()を使用するとPNGやJPEG形式で保存できます。
Q: すべてのブラウザで動作しますか?
A: 主要なモダンブラウザでは対応しているが、IE8以前では動作しない。

まとめ

  • canvasタグはJavaScriptと組み合わせてグラフィックスを描画する。
  • 線、図形、テキスト、画像、アニメーションなどを描画可能。
  • 動的なグラフィックスを作成する場合に適している。
  • SEO対策のために代替テキストを提供するのが望ましい。