CanvasRenderingContext2D: getContextAttributes()-Methode

Die CanvasRenderingContext2D.getContextAttributes()-Methode gibt ein Objekt zurück, das Attribute enthält, die vom Kontext genutzt werden.

Beachten Sie, dass Kontextattribute angefordert werden können, wenn der Kontext mit HTMLCanvasElement.getContext() erstellt wird. Die Attribute, die tatsächlich unterstützt und verwendet werden, können jedoch abweichen.

Syntax

js
getContextAttributes()

Parameter

Keine.

Rückgabewert

Ein CanvasRenderingContext2DSettings-Objekt, das die tatsächlichen Kontextparameter enthält. Es hat folgende Mitglieder:

alpha Optional

Ein boolescher Wert, der angibt, ob die Leinwand einen Alphakanal enthält. Wenn false, ist der Hintergrund immer undurchsichtig, was das Zeichnen von transparenten Inhalten und Bildern beschleunigen kann.

colorSpace Optional

Gibt den Farbraum des Rendering-Kontexts an. Mögliche Werte sind:

desynchronized Optional

Ein boolescher Wert, der angibt, ob der User-Agent die Latenzzeit reduziert hat, indem er den Malzyklus der Leinwand von der Ereignisschleife desynchronisiert hat.

willReadFrequently Optional

Ein boolescher Wert, der angibt, ob diese Leinwand Software-Beschleunigung (anstelle von Hardware-Beschleunigung) verwendet, um häufige Rückleseoperationen über getImageData() zu unterstützen.

Beispiele

Dieses Beispiel zeigt, wie Sie Kontextattribute beim Erstellen eines Leinwandkontexts angeben und anschließend getContextAttributes() aufrufen können, um die tatsächlichen Parameter zu lesen, die der Browser verwendet hat.

Zuerst erstellen wir einen Kontext mit HTMLCanvasElement.getContext(), wobei wir nur ein Kontextattribut angeben.

js
let canvas = document.createElement("canvas");
let ctx = canvas.getContext("2d", { alpha: false });

Wenn die getContextAttributes()-Methode unterstützt wird, verwenden wir sie, um die tatsächlichen vom Browser genutzten Attribute auszulesen (einschließlich derjenigen, die wir explizit angegeben haben):

js
if (ctx.getContextAttributes) {
  const attributes = ctx.getContextAttributes();
  log(JSON.stringify(attributes));
} else {
  log("CanvasRenderingContext2D.getContextAttributes() is not supported");
}

Abhängig von den vom Browser unterstützten Attributen sollte das untenstehende Protokoll eine Zeichenkette anzeigen, die in etwa so aussieht: {alpha: false, colorSpace: 'srgb', desynchronized: false, willReadFrequently: false}

Spezifikationen

Specification
HTML Standard
# 2dcontext:dom-context-2d-canvas-getcontextattributes-2

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch