ImageDecoder: Methode decode()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Dieses Feature ist verfügbar in Dedicated Web Workers.
Die decode()
-Methode des ImageDecoder
-Interfaces sendet eine Steuerungsmeldung, um den Frame eines Bildes zu dekodieren.
Syntax
decode()
decode(options)
Parameter
options
Optional-
Ein Objekt, das die folgenden Mitglieder enthält:
frameIndex
Optional-
Ein ganzzahliger Wert, der den Index des zu dekodierenden Frames darstellt. Standardmäßig
0
(der erste Frame). completeFramesOnly
Optional-
Ein
boolean
, der standardmäßig auftrue
gesetzt ist. Wennfalse
, deutet dies darauf hin, dass der Decoder bei progressiven Bildern ein Bild mit reduzierten Details ausgeben kann. Wennfalse
, wird das vondecode()
zurückgegebene Versprechen genau einmal für jede neue Detailstufe aufgelöst.
Rückgabewert
Ein promise
, das sich mit einem Objekt auflöst, das die folgenden Mitglieder enthält:
image
-
Ein
VideoFrame
, das das dekodierte Bild enthält. complete
-
Ein
boolean
, wenntrue
, zeigt an, dassimage
die endgültige Ausgabe in voller Detailtiefe enthält.
Ausnahmen
Wenn ein Fehler auftritt, wird das Versprechen mit der folgenden Ausnahme aufgelöst:
InvalidStateError
DOMException
-
Wird zurückgegeben, wenn eine der folgenden Bedingungen zutrifft:
close
ist wahr, was bedeutet, dassclose()
bereits aufgerufen wurde.- Der angeforderte Frame existiert nicht.
Beispiele
Synchrone Dekodierung eines vollständigen Bild-Frames
Das folgende Beispiel dekodiert den zweiten Frame (bei Index 1
) und gibt das resultierende VideoFrame
in der Konsole aus.
let result = await imageDecoder.decode({ frameIndex: 1 });
console.log(result.image);
Partielle Dekodierung eines progressiven Bild-Frames
Das folgende Beispiel dekodiert den ersten Frame wiederholt, bis er vollständig ist:
let complete = false;
while (!complete) {
// The promise returned by `decode()` will only resolve when a new
// level of detail is available or the frame is complete. I.e.,
// calling `decode()` in a loop like this is won't needlessly spin.
let result = await imageDecode.decode({ completeFramesOnly: false });
// Do something with `result.image`.
complete = result.complete;
}
Spezifikationen
Specification |
---|
WebCodecs # dom-imagedecoder-decode |
Browser-Kompatibilität
BCD tables only load in the browser