CanvasRenderingContext2D: getContextAttributes() メソッド
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2023年8月.
CanvasRenderingContext2D.getContextAttributes() メソッドは、このコンテキストで使用されている属性を含むオブジェクトを返します。
コンテキスト属性は、HTMLCanvasElement.getContext() でコンテキストを作成する際にリクエストされる場合がありますが、実際に対応し使用されている属性は異なる場合があります。
構文
getContextAttributes()
引数
なし。
返値
実際のコンテキスト引数が含まれている CanvasRenderingContext2DSettings オブジェクト。
次のメンバーを持っています。
alpha省略可-
論理値で、このキャンバスがアルファチャンネルを持っているかどうかを示します。
falseの場合、背景は常に不透明になります。これにより、透明なコンテンツや画像が高速に描画される可能性があります。 colorSpace省略可-
レンダリングコンテキストの色空間を示します。使用可能な値は次のとおりです。
srgb: sRGB 色空間を示します。display-p3: display-p3 色空間を示します。
colorType省略可-
レンダリングコンテキストの色タイプを示します。使用可能な値は次のとおりです。
"unorm8"は色チャンネルを 8 ビットの符号なし値に指定します。これが既定値です。"float16"は、色チャンネルを16ビット浮動小数点値で指定することを示します。
desynchronized省略可-
論理値で、ユーザーエージェントがキャンバスの描画サイクルをイベントループから非同期化することでレイテンシーを低減しているかどうかを示します。
willReadFrequently省略可-
論理値で、このキャンバスが、
getImageData()を介した頻繁な読み出し操作に対応するために、ハードウェアアクセラレーションではなくソフトウェアアクセラレーションを使用するかどうかを示します。
例
この例は、キャンバスコンテキストを生成する際にコンテキスト属性を指定する方法と、その後で getContextAttributes() を呼び出してブラウザーが実際に使用した引数を取得する方法を示しています。
最初に HTMLCanvasElement.getContext() を使用してコンテキストを作成し、コンテキスト属性を 1 つだけ指定します。
let canvas = document.createElement("canvas");
let ctx = canvas.getContext("2d", { alpha: false });
getContextAttributes() メソッドが対応している場合、それを使用してブラウザーが実際に使用した属性(明示的に指定した属性を含む)を読み戻します。
if (ctx.getContextAttributes) {
const attributes = ctx.getContextAttributes();
log(JSON.stringify(attributes));
} else {
log("CanvasRenderingContext2D.getContextAttributes() に対応していません。");
}
ブラウザーが対応している属性に応じて、ログには {alpha: false, colorSpace: 『srgb』, desynchronized: false, willReadFrequently: false} のような文字列が表示されるはずです。
仕様書
| Specification |
|---|
| HTML> # 2dcontext:dom-context-2d-canvas-getcontextattributes-2> |