ImageDecoder: decode() Methode
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: Diese Funktion ist in Dedicated Web Workers verfügbar.
Die decode()-Methode der ImageDecoder-Schnittstelle stellt eine Steuerungsnachricht in die Warteschlange, um den Frame eines Bildes zu decodieren.
Syntax
decode()
decode(options)
Parameter
optionsOptional-
Ein Objekt, das die folgenden Mitglieder enthält:
frameIndexOptional-
Ein ganzzahliger Wert, der den Index des zu decodierenden Frames darstellt. Standardmäßig
0(der erste Frame). completeFramesOnlyOptional-
Ein
boolean, der standardmäßig auftruegesetzt ist. Wenntrue, wird das von der Methode zurückgegebenePromisenur dann aufgelöst, wenn das Bild vollständig decodiert ist. Wennfalse, gibt die Methode ein neuesPromisezurück, das möglicherweise mit einem teilweise decodierten Bild aufgelöst wird. Die Methode kann wiederholt aufgerufen werden, bisresult.completewahr ist, wobei jeder Schritt ein Bild mit der nächsten verfügbaren Detailebene bereitstellt.
Rückgabewert
Ein promise, das mit einem Objekt aufgelöst wird, das die folgenden Mitglieder enthält:
image-
Ein
VideoFrame, das das decodierte Bild enthält. complete-
Ein
boolean, wenntrue, zeigt an, dassimagedie finale, voll detaillierte Ausgabe 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
>Synchrone Dekodierung eines vollständigen Bildframes
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 Bildframes
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
| Specification |
|---|
| WebCodecs> # dom-imagedecoder-decode> |