Color Formats
The following image pixel color formats have built-in decoding support:
Built-in Input Color Formats
The following image pixel color formats have built-in decoding support:
All of the below format names are used in code by prefixing them with
LV_COLOR_FORMAT_ (e.g. LV_COLOR_FORMAT_RGB565).
| Format | BPP | Supported by offline converter | Description |
|---|---|---|---|
| I1 1 | 1 | Yes | Indexed with 2-color palette |
| I2 1 | 2 | Yes | Indexed with 4-color palette |
| I4 1 | 4 | Yes | Indexed with 16-color palette |
| I8 1 | 8 | Yes | Indexed with 256-color palette |
| A8 | 8 | Yes | Pixels express alpha only (used where color is supplied elsewhere as with fonts) |
| L8 | 8 | Yes | Luminance: pixels express gray-scale value in range [0-255] |
| AL88 | 16 | Yes | L8 with an alpha byte |
| RGB565 | 16 | Yes | Standard RGB565 (little-endian format) |
| ARGB8565 | 24 | Yes | RGB565 preceded by alpha byte |
| RGB565A8 | 24 | Yes | RGB565 + trailing alpha byte |
| RGB565_SWAPPED | 16 | Yes | RGB565 big-endian format |
| RGB888 | 24 | Yes | Standard RGB with 8 bits per color channel |
| ARGB8888 | 32 | Yes | Standard ARGB with 8 bits per color channel |
| XRGB8888 | 32 | Yes | Like ARGB but alpha bytes are ignored |
| ARGB8888_PREMULTIPLIED | 32 | Yes | ARGB8888 with RGB pre-darkened according to alpha channel value |
| RAW 2 | ? | n/a | See Custom Image Formats |
| RAW_ALPHA 2 | ? | n/a | See Custom Image Formats |
Built-In Input and Output Formats
| Format | BPP | Supported by offline converter | Description |
|---|---|---|---|
| NATIVE 3 | Depends | No | Alias of LV_COLOR_FORMAT_DEFAULT, the format displays render in by default |
| NATIVE_WITH_ALPHA 3 | Depends | No | The alpha-capable companion of LV_COLOR_FORMAT_DEFAULT |
GPU Input Formats
The following color formats are supported by certain GPUs and are retained as color-format enumeration values that can be used when a GPU is going to be doing the drawing.
Alpha-Only and Special ARGB Formats
| Format | BPP | Supported by offline converter | Description |
|---|---|---|---|
| A1 | 1 | No | Like A8 but only 255 alpha or 0 alpha |
| A2 | 2 | No | Like A8 but 4 alpha values |
| A4 | 4 | No | Like A8 but 16 alpha values |
| ARGB2222 | 8 | No | ARGB2222 |
| ARGB1555 | 16 | No | ARGB1555 |
| ARGB4444 | 16 | No | ARGB4444 |
YUV Planar Formats
Reference: https://wiki.videolan.org/YUV/
| Format | BPP | Supported by offline converter | Description |
|---|---|---|---|
| I420 | No | YUV420 planar (3 plane) | |
| I422 | No | YUV422 planar (3 plane) | |
| I444 | No | YUV444 planar (3 plane) | |
| I400 | No | YUV400 no chroma channel | |
| NV21 | No | YUV420 planar (2 plane), UV plane in 'V, U, V, U' | |
| NV12 | No | YUV420 planar (2 plane), UV plane in 'U, V, U, V' |
YUV Packed Formats
| Format | BPP | Supported by offline converter | Description |
|---|---|---|---|
| YUY2 | No | YUV422 packed like 'Y U Y V' | |
| UYVY | No | YUV422 packed like 'U Y V Y' |
Proprietary Formats
| Format | BPP | Supported by offline converter | Description |
|---|---|---|---|
| NEMA_TSC4 | No | NEMA TSC4 | |
| NEMA_TSC6 | No | NEMA TSC6 | |
| NEMA_TSC6A | No | NEMA TSC6A | |
| NEMA_TSC6AP | No | NEMA TSC6AP | |
| NEMA_TSC12 | No | NEMA TSC12 | |
| NEMA_TSC12A | No | NEMA TSC12A |
Footnotes
-
I1, I2, I4 and I8 indexed formats require
LV_DRAW_SW_SUPPORT_ARGB8888to be configured to1in yourlv_conf.hfile. Palette colors are alwaysARGB8888. ↩ ↩2 ↩3 ↩4 -
Custom formats can be supported by specifying one of the RAW color formats and using an external image decoder to decode it. See Image Decoders. ↩ ↩2
-
Both were
lv_color_format_tenumerators picked byLV_COLOR_DEPTH. They are no longer part of the enum and live on as compatibility macros inlv_api_map_v9_5.h, so they keep working unless you build withLV_DISABLE_API_MAPPING:LV_COLOR_FORMAT_DEFAULT..._NATIVE..._NATIVE_WITH_ALPHAI1I1I1(no alpha-capable 1-bit format)L8L8AL88RGB565RGB565RGB565A8RGB565_SWAPPEDRGB565_SWAPPEDRGB565A8RGB888RGB888ARGB8888XRGB8888XRGB8888ARGB8888ARGB8888ARGB8888ARGB8888ARGB8888_PREMULTIPLIEDARGB8888_PREMULTIPLIEDARGB8888_PREMULTIPLIEDIn new code, name the format you want directly, or read a display's actual format with
lv_display_get_color_format, which is what you want if the format was changed at runtime withlv_display_set_color_format. See Color Format. ↩ ↩2
Last updated on