--- title: Canvas API slug: Web/API/Canvas_API tags: - API - Canvas - Graphics - Overview - Reference - キャンバス - グラフィック - 概要 translation_of: Web/API/Canvas_API ---
{{CanvasSidebar}}

Canvas APIJavaScriptHTML の {{HtmlElement("canvas")}} 要素によってグラフィックを描く方法を提供します。他にも、アニメーション、ゲームのグラフィック、データの可視化、写真加工、リアルタイム動画処理などに使用することができます。

Canvas API は全体的に 2D グラフィックを対象としています。 WebGL API は、こちらも <canvas> 要素を使用して、ハードウェアで高速化された 2D および 3D グラフィックを描きます。

基本的な例

この単純な例は、キャンバス上に緑の四角形を描きます。

HTML

<canvas id="canvas"></canvas>

JavaScript

{{domxref("Document.getElementById()")}} メソッドで、 HTML の <canvas> 要素への参照を取得します。次に、 {{domxref("HTMLCanvasElement.getContext()")}} メソッドで要素のコンテキストを取得します。 — ここに描画されたものが表示されます。

実際の描画は {{domxref("CanvasRenderingContext2D")}} インターフェイスを用いて行われます。 {{domxref("CanvasRenderingContext2D.fillStyle", "fillStyle")}} プロパティは四角形を緑にします。 {{domxref("CanvasRenderingContext2D.fillRect()", "fillRect()")}} メソッドはこれを左上から (10, 10) の位置で、幅を150単位、高さを100単位の寸法を与えます。

const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');

ctx.fillStyle = 'green';
ctx.fillRect(10, 10, 150, 100);

結果

{{ EmbedLiveSample('Basic_example', 700, 180) }}

リファレンス

メモ: WebGLRenderingContext に関するインターフェイスは、WebGL に掲載しています。

{{domxref("CanvasCaptureMediaStream")}} は関連するインターフェイスです。

ガイドとチュートリアル

Canvas チュートリアル
<canvas> の基本的な使いかたと高度な機能の両方をカバーする網羅的なチュートリアル。
HTML5 Canvas Deep Dive
Canvas API および WebGL の実践的な書籍規模の入門です。
Canvas Handbook
Canvas API の手軽なリファレンス。
デモ: 簡単な ray-caster
キャンバスを用いたレイトレーシングアニメーションのデモ。
canvas を使用した動画の操作
{{HTMLElement("video")}} と {{HTMLElement("canvas")}} を組み合わせて、動画データをリアルタイムに操作します。

ライブラリ

Canvas API は非常に強力ですが、利用するのは単純とは限りません。以下に挙げたライブラリは、キャンバスベースのプロジェクトの作成をより速くより手軽にできるようにします。

メモ: WebGL を使用する 2D および 3D のライブラリについては WebGL API を参照してください。

仕様書

仕様書 状態 備考
{{SpecName('HTML WHATWG', '#2dcontext', 'the 2D rendering context')}} {{Spec2('HTML WHATWG')}}

ブラウザーの互換性

Mozilla アプリケーションは <canvas> の対応を Gecko 1.8 (Firefox 1.5) から始めました。この要素はもともと Apple が OS X Dashboard や Safari のために導入したものでした。 Internet Explorer は <canvas> をバージョン9から対応しており、それ以前のバージョンの IE では、ページに効率的に <canvas> の対応を追加するために Google の Explorer Canvas プロジェクトによるスクリプトを利用することができます。 Google Chrome や Opera 9 も <canvas> に対応しています。

関連情報