ImageDecoder: ImageDecoder() constructor

Limited availability

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.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Note: This feature is available in Dedicated Web Workers.

The ImageDecoder() constructor creates a new ImageDecoder object which unpacks and decodes image data.

Syntax

js
new ImageDecoder(init)

Parameters

init

An object containing the following members:

type

A string containing the MIME type of the image file to be decoded.

data

An ArrayBuffer, a TypedArray, a DataView, or a ReadableStream of bytes representing an encoded image type as described by type.

premultiplyAlpha Optional

Specifies whether the decoded image's color channels should be premultiplied by the alpha channel. If not provided set as "default":

  • "none"
  • "premultiply"
  • "default"
colorSpaceConversion Optional

Specifies whether the image should be decoded using color space conversion. If not provided set as "default". The value "default" indicates that implementation-specific behavior is used:

  • "none"
  • "default"
desiredWidth Optional

An integer indicating the desired width for the decoded output. Has no effect unless the image codec supports variable resolution decoding.

desiredHeight Optional

An integer indicating the desired height for the decoded output. Has no effect unless the image codec supports variable resolution decoding.

preferAnimation Optional

A Boolean indicating whether the initial track selection should prefer an animated track.

transfer

An array of ArrayBuffers that ImageDecoder will detach and take ownership of. If the array contains the ArrayBuffer backing data, ImageDecoder will use that buffer directly instead of copying from it.

Examples

The following example creates a new ImageDecoder with the required options.

js
let init = {
  type: "image/png",
  data: imageByteStream,
};

let imageDecoder = new ImageDecoder(init);

Specifications

Specification
WebCodecs
# dom-imagedecoder-imagedecoder

Browser compatibility

BCD tables only load in the browser