{% setvar book_path %}/reference/androidx/_book.yaml{% endsetvar %} {% include "_shared/_reference-head-tags.html" %}

ImageBitmapConfig.Companion

public static class ImageBitmapConfig.Companion


Summary

Public methods

static final @NonNull ImageBitmapConfig

Each pixel is stored as a single translucency (alpha) channel.

static final @NonNull ImageBitmapConfig

Each pixel is stored on 4 bytes.

static final @NonNull ImageBitmapConfig

Each pixel is stored on 8 bytes.

static final @NonNull ImageBitmapConfig

Special configuration, when an ImageBitmap is stored only in graphic memory.

static final @NonNull ImageBitmapConfig

Each pixel is stored on 2 bytes and only the RGB channels are encoded: red is stored with 5 bits of precision (32 possible values), green is stored with 6 bits of precision (64 possible values) and blue is stored with 5 bits of precision.

Public methods

getAlpha8

public static final @NonNull ImageBitmapConfig getAlpha8()

Each pixel is stored as a single translucency (alpha) channel. This is very useful to efficiently store masks for instance. No color information is stored. With this configuration, each pixel requires 1 byte of memory.

getArgb8888

public static final @NonNull ImageBitmapConfig getArgb8888()

Each pixel is stored on 4 bytes. Each channel (RGB and alpha for translucency) is stored with 8 bits of precision (256 possible values.)

This configuration is very flexible and offers the best quality. It should be used whenever possible.

Use this formula to pack into 32 bits:
val color =
((A and 0xff) shl 24) or
((B and 0xff) shl 16) or
((G and 0xff) shl 8) or
(R and 0xff)

getF16

public static final @NonNull ImageBitmapConfig getF16()

Each pixel is stored on 8 bytes. Each channel (RGB and alpha for translucency) is stored as a half-precision floating point value.

This configuration is particularly suited for wide-gamut and HDR content.

Use this formula to pack into 64 bits:
    val color =
((A and 0xffff) shl 48) or
((B and 0xffff) shl 32) or
((G and 0xffff) shl 16) or
(R and 0xffff)

getGpu

public static final @NonNull ImageBitmapConfig getGpu()

Special configuration, when an ImageBitmap is stored only in graphic memory. ImageBitmaps in this configuration are always immutable.

It is optimal for cases, when the only operation with the ImageBitmap is to draw it on a screen.

getRgb565

public static final @NonNull ImageBitmapConfig getRgb565()

Each pixel is stored on 2 bytes and only the RGB channels are encoded: red is stored with 5 bits of precision (32 possible values), green is stored with 6 bits of precision (64 possible values) and blue is stored with 5 bits of precision.

This configuration can produce slight visual artifacts depending on the configuration of the source. For instance, without dithering, the result might show a greenish tint. To get better results dithering should be applied.

This configuration may be useful when using opaque bitmaps that do not require high color fidelity.

Use this formula to pack into 16 bits:
val color =
((R and 0x1f) shl 11) or
((G and 0x3f) shl 5) or
(B and 0x1f)