Movatterモバイル変換


[0]ホーム

URL:


  1. 開発者向けのウェブ技術
  2. Web API
  3. HTMLCanvasElement
  4. HTMLCanvasElement: getContext() メソッド

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。

View in EnglishAlways switch to English

HTMLCanvasElement: getContext() メソッド

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.

* Some parts of this feature may have varying levels of support.

HTMLCanvasElement.getContext() メソッドは、描画コンテキストを返します。対応していないコンテキスト識別子であったり、既に別なコンテキストモードが設定されていたりした場合はnull になります。

同じキャンバス要素において、同じcontextType 引数を指定して後からこのメソッドを呼び出すと、常に最初の時点で呼び出された時と同じ描画コンテキストインスタンスが返されます。そのキャンバス要素で異なる描画コンテキストオブジェクトを取得することはできません。

構文

js
getContext(contextType)getContext(contextType, contextAttributes)

引数

contextType

キャンバスに関連する描画コンテキストを定義するコンテキスト識別子が入っている文字列です。利用可能な値は次の通りです。

メモ:識別子"experimental-webgl" は、WebGL の新しい実装で使用されます。これらの実装は、テストスイート適合性に達していないか、プラットフォームのグラフィックドライバーがまだ安定していないかのいずれかです。Khronos Group が、一定の適合性ルールのもと、WebGL 実装を認証しています。

contextAttributes省略可

レンダリングコンテキストを作成する際に、いくつかのコンテキスト属性を使用することができます。例えば、以下のようなものです。

js
const gl = canvas.getContext("webgl", {  antialias: false,  depth: false,});

2 次元のコンテキスト属性:

alpha

キャンバスにアルファチャンネルが含まれているかどうかを示す論理値です。false に設定すると、ブラウザーは背景が常に不透明であることを認識するようになり、透過コンテンツや画像の描画を高速化することができます。

colorSpace省略可

レンダリングコンテキストの色空間を指定します。使用可能な値は以下の通りです。

desynchronized

論理値で、ユーザーエージェントがキャンバスの描画サイクルをイベントループから非同期化することによって、遅延を縮小することを示唆します。

willReadFrequently

多くのリードバック操作を予定しているかどうかを示す論理値です。これにより、(ハードウェアアクセラレーションではなく)ソフトウェア2Dキャンバスを使用するようになり、getImageData() を頻繁に呼び出す際にメモリーを節約することができます。

WebGL コンテキスト属性:

alpha

論理値で、キャンバスがアルファバッファーを持っているかどうかを示します。

depth

論理値で、描画バッファーに 16 ビット以上のの深度バッファーがあることがリクエストされたことを示します。

stencil

論理値で、描画バッファーに 8 ビット以上のステンシルバッファーを持つようリクエストされたことを示します。

desynchronized

論理値で、ユーザーエージェントがキャンバスの描画サイクルをイベントループから非同期化することでレイテンシーを縮小することを示唆します。

antialias

論理値で、可能であればアンチエイリアスを行うか否かを示します。

failIfMajorPerformanceCaveat

論理値で、システム性能が低い場合やハードウェア GPU が利用できない場合に、コンテキストを作成するかどうかを示します。

powerPreference

どのような GPU 構成が WebGL コンテキストに適しているかを示すユーザーエージェントへのヒントです。使用可能な値は次のとおりです。

"default"

どの GPU 構成が最も適しているかをユーザーエージェントに決定させます。これが既定値です。

"high-performance"

消費電力よりもレンダリング性能を優先します。

"low-power"

描画性能よりも省電力を優先します。

premultipliedAlpha

論理値で、ページコンポジターが描画バッファーにアルファがあらかじめ乗算された色を格納することを想定することを示します。

preserveDrawingBuffer

値が true の場合、バッファーがクリアされることはなく、作者がクリアするか上書きするまでその値が保持されます。

xrCompatible

論理値で、没入型 XR 機器に対応したグラフィックアダプターを使用するよう、ユーザーエージェントに示唆します。コンテキスト生成時にこの同期フラグを設定することは推奨されません。XR セッションを始めるには、非同期のWebGLRenderingContext.makeXRCompatible() メソッドを呼び出す必要があります。

メモ:WebGPU 仕様書では、getContext() に固有のコンテキスト属性を定義していません。その代わりに、GPUCanvasContext.configure() メソッドで構成オプションを提供しています。

返値

次のいずれかの描画コンテキストです。

contextType が使用可能な描画コンテキストに一致しない場合、または最初にリクエストされたcontextType と異なる場合は、null を返します。

この<canvas> 要素があったとします。

html
<canvas width="300" height="300"></canvas>

以下のコードで、キャンバスの2d コンテキストを取得することができます。

js
const canvas = document.getElementById("canvas");const ctx = canvas.getContext("2d");console.log(ctx); // CanvasRenderingContext2D { /* … */ }

これでキャンバスの2D 描画コンテキストを取得し、その中に描画することができるようになりました。

仕様書

Specification
HTML
# dom-canvas-getcontext-dev

ブラウザーの互換性

関連情報

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2026 Movatter.jp