ImageDecoder: decode() method
The decode() method of the ImageDecoder interface enqueues a control message to decode the frame of an image.
Syntax
Parameters
options Optional
-
An object containing the following members:
frameIndex Optional
-
An integer representing the index of the frame to decode. Defaults to 0 (the first frame).
completeFramesOnly Optional
-
A boolean defaulting to true. When false indicates that for progressive images the decoder may output an image with reduced detail. When false, the promise returned by decode() will resolve exactly once for each new level of detail.
Return value
A promise that resolves with an object containing the following members:
-
image
-
A VideoFrame containing the decoded image.
-
complete
-
A boolean, if true indicates that image contains the final full-detail output.
Exceptions
If an error occurs, the promise will resolve with following exception:
InvalidStateError DOMException
-
Returned if any of the following conditions apply:
close is true, meaning close() has already been called.
- The requested frame does not exist.
Examples
Synchronous decoding of a completed image frame
The following example decodes the second frame (at index 1) and prints the resulting VideoFrame to the console.
let result = await imageDecoder.decode({ frameIndex: 1 });
console.log(result.image);
Partial decoding of a progressive image frame
The following example decodes the first frame repeatedly until its complete:
let complete = false;
while (!complete) {
let result = await imageDecode.decode({ completeFramesOnly: false });
complete = result.complete;
}
Specifications
Browser compatibility
|
Desktop |
Mobile |
|
Chrome |
Edge |
Firefox |
Internet Explorer |
Opera |
Safari |
WebView Android |
Chrome Android |
Firefox for Android |
Opera Android |
Safari on IOS |
Samsung Internet |
decode |
94 |
94 |
No |
No |
80 |
No |
94 |
94 |
No |
66 |
No |
17.0 |