ImageBitmapConfig


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

Summary

Public companion properties

ImageBitmapConfig

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

Cmn
ImageBitmapConfig

Each pixel is stored on 4 bytes.

Cmn
ImageBitmapConfig

Each pixel is stored on 8 bytes.

Cmn
ImageBitmapConfig

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

Cmn
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.

Cmn

Public functions

open String
Cmn

Public properties

Int
Cmn

Public companion properties

Alpha8

val Alpha8ImageBitmapConfig

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

val Argb8888ImageBitmapConfig

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

val F16ImageBitmapConfig

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

val GpuImageBitmapConfig

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.

Rgb565

val Rgb565ImageBitmapConfig

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)

Public functions

toString

open fun toString(): String

Public properties

value

val valueInt