ImageConfig

enum class ImageConfig
kotlin.Any
   ↳ kotlin.Enum<androidx.ui.graphics.ImageConfig>
   ↳ androidx.ui.graphics.ImageConfig

Possible Image configurations. An Image configuration describes how pixels are stored. This affects the quality (color depth) as well as the ability to display transparent/translucent colors.

Summary

Enum values

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

Each pixel is stored on 4 bytes.

Each pixel is stored on 8 bytes.

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

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.

Enum values

Alpha8

enum val Alpha8 : ImageConfig

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.

Argb8888

enum val Argb8888 : ImageConfig

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)

F16

enum val F16 : ImageConfig

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)

Gpu

enum val Gpu : ImageConfig

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

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

Rgb565

enum val Rgb565 : ImageConfig

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)