This feature is not Baseline because it does not work in some of the most widely-used browsers.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is available in Dedicated Web Workers.
The decode() method of the ImageDecoder interface enqueues a control message to decode the frame of an image.
decode() decode(options)
options OptionalAn object containing the following members:
frameIndex OptionalAn integer representing the index of the frame to decode. Defaults to 0 (the first frame).
completeFramesOnly OptionalA 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.
A promise that resolves with an object containing the following members:
imageA VideoFrame containing the decoded image.
completeA boolean, if true indicates that image contains the final full-detail output.
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 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);
The following example decodes the first frame repeatedly until its complete:
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;
}
| Specification |
|---|
| WebCodecs> # dom-imagedecoder-decode> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
decode |
94 | 94 | 133 | 80 | No | 94 | 133 | 66 | No | 17.0 | 94 | No |
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/ImageDecoder/decode