ImageDecoder: decode()-Methode
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Want more browser support for this feature? Tell us why.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist in Dedicated Web Workers verfügbar.
Die decode()-Methode des ImageDecoder-Interfaces reiht eine Steuerungsnachricht ein, um den Frame eines Bildes zu dekodieren.
Syntax
decode()
decode(options)
Parameter
optionsOptional-
Ein Objekt, das die folgenden Mitglieder enthält:
frameIndexOptional-
Ein Integer, der den Index des zu dekodierenden Frames darstellt. Standardmäßig
0(der erste Frame). completeFramesOnlyOptional-
Ein
Boolean, standardmäßigtrue. Wenntrue, wird dasPromise, das von der Methode zurückgegeben wird, nur dann aufgelöst, wenn das Bild vollständig dekodiert ist. Wennfalse, wird die Methode ein neuesPromisezurückgeben, das möglicherweise mit einem teilweise dekodierten Bild aufgelöst wird. Die Methode kann wiederholt aufgerufen werden, bisresult.completewahr ist, wobei jeder Schritt ein Bild mit dem nächsten verfügbaren Detaillierungsgrad bereitstellt.
Rückgabewert
Ein Promise, das mit einem Objekt aufgelöst wird, das die folgenden Mitglieder enthält:
image-
Ein
VideoFrame, das das dekodierte Bild enthält. complete-
Ein
Boolean, das, wenntrue, anzeigt, dassimagedas endgültige voll detaillierte Ergebnis enthält.
Ausnahmen
Wenn ein Fehler auftritt, wird das Promise mit folgender Ausnahme aufgelöst:
InvalidStateErrorDOMException-
Wird zurückgegeben, wenn eine der folgenden Bedingungen zutrifft:
closeist wahr, was bedeutet, dassclose()bereits aufgerufen wurde.- Der angeforderte Frame existiert nicht.
Beispiele
>Synchrones Dekodieren eines abgeschlossenen Bild-Frames
Das folgende Beispiel dekodiert den zweiten Frame (bei Index 1) und gibt den resultierenden VideoFrame in der Konsole aus.
let result = await imageDecoder.decode({ frameIndex: 1 });
console.log(result.image);
Teilweise 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 won't needlessly spin.
let result = await imageDecoder.decode({ completeFramesOnly: false });
// Do something with `result.image`.
complete = result.complete;
}
Spezifikationen
| Spezifikation |
|---|
| WebCodecs> # dom-imagedecoder-decode> |