# ImageDecoder.Factory

Artifact: [androidx.media3:media3-exoplayer](https://developer.android.com/jetpack/androidx/releases/media3) [View Source](https://cs.android.com/search?q=file:androidx/media3/exoplayer/image/ImageDecoder.java+class:androidx.media3.exoplayer.image.ImageDecoder.Factory)

*** ** * ** ***


```
public interface ImageDecoder.Factory
```

<br />

Known direct subclasses [BitmapFactoryImageDecoder.Factory](https://developer.android.com/reference/androidx/media3/exoplayer/image/BitmapFactoryImageDecoder.Factory), [ExternallyLoadedImageDecoder.Factory](https://developer.android.com/reference/androidx/media3/exoplayer/image/ExternallyLoadedImageDecoder.Factory)

|---|---|
| `https://developer.android.com/reference/androidx/media3/exoplayer/image/BitmapFactoryImageDecoder.Factory` | A factory for `https://developer.android.com/reference/androidx/media3/exoplayer/image/BitmapFactoryImageDecoder` instances. |
| `https://developer.android.com/reference/androidx/media3/exoplayer/image/ExternallyLoadedImageDecoder.Factory` | A `https://developer.android.com/reference/androidx/media3/exoplayer/image/ImageDecoder.Factory` for `https://developer.android.com/reference/androidx/media3/exoplayer/image/ExternallyLoadedImageDecoder` instances. |

*** ** * ** ***

A factory for image decoders.

## Summary

| ### Constants |
|---|---|
| `default static final https://developer.android.com/reference/androidx/media3/exoplayer/image/ImageDecoder.Factory` | `https://developer.android.com/reference/androidx/media3/exoplayer/image/ImageDecoder.Factory#DEFAULT()` **This field is deprecated.** Instantiate a `https://developer.android.com/reference/androidx/media3/exoplayer/image/BitmapFactoryImageDecoder.Factory` directly. <br /> |

| ### Public methods |
|---|---|
| `abstract https://developer.android.com/reference/androidx/media3/exoplayer/image/ImageDecoder` | `https://developer.android.com/reference/androidx/media3/exoplayer/image/ImageDecoder.Factory#createImageDecoder()()` Creates a new `https://developer.android.com/reference/androidx/media3/exoplayer/image/ImageDecoder`. |
| `abstract int` | `@https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities https://developer.android.com/reference/androidx/media3/exoplayer/image/ImageDecoder.Factory#supportsFormat(androidx.media3.common.Format)(https://developer.android.com/reference/androidx/media3/common/Format format)` Returns the highest `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities` of the factory's decoders for the given `https://developer.android.com/reference/androidx/media3/common/Format`. |

## Constants

### DEFAULT

```
default static final ImageDecoder.Factory DEFAULT
```

> [!CAUTION]
> **This field is deprecated.**   
>
> Instantiate a `https://developer.android.com/reference/androidx/media3/exoplayer/image/BitmapFactoryImageDecoder.Factory` directly.

## Public methods

### createImageDecoder

```
abstract ImageDecoder createImageDecoder()
```

Creates a new `https://developer.android.com/reference/androidx/media3/exoplayer/image/ImageDecoder`.

### supportsFormat

```
@RendererCapabilities.Capabilities
abstract int supportsFormat(Format format)
```

Returns the highest `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities` of the factory's decoders for the given `https://developer.android.com/reference/androidx/media3/common/Format`.

| Parameters |
|---|---|
| `https://developer.android.com/reference/androidx/media3/common/Format format` | The `https://developer.android.com/reference/androidx/media3/common/Format`. |

| Returns |
|---|---|
| `int` | The `https://developer.android.com/reference/androidx/media3/exoplayer/RendererCapabilities.Capabilities` of the decoders the factory can instantiate for this format. |