GIF (lv_gif)
The GIF Widget internally uses the AnimatedGIF GIF Decoder library, enabling you to use GIF images in your LVGL UI.
Parts and Styles
LV_PART_MAINA background rectangle that uses the typical background style properties.
Usage
Once enabled in lv_conf.h by setting LV_USE_GIF to 1,
lv_gif_create(parent) can be used to create a GIF Widget.
Set the color format of the GIF framebuffer with lv_gif_set_color_format(widget, color_format).
Use LV_COLOR_FORMAT_ARGB8888 for gifs with transparency.
It is set to LV_COLOR_FORMAT_ARGB8888 by default.
Significant RAM can be saved by using a smaller color format.
A color format conversion can be saved during rendering if the color format matches the display
color format.
This function can be called before lv_gif_set_src to prevent the initial default ARGB8888
framebuffer from being allocated.
The supported color formats are:
-
LV_COLOR_FORMAT_RGB565 -
LV_COLOR_FORMAT_RGB565_SWAPPED -
LV_COLOR_FORMAT_RGB888 -
LV_COLOR_FORMAT_ARGB8888
lv_gif_set_src(widget, src) works very similarly to lv_image_set_src.
As source, it also accepts images as variables (lv_image_dsc_t) or files.
Converting GIF Files to C Arrays
Converting GIF files to an array of bytes is not supported in the online image
converter since LVGL v9.0. However, there is still a way to do it through the
./scripts/LVGLImage.py Python script. This command line:
python ./scripts/LVGLImage.py --cf RAW --ofmt C -o . --name my_gif_image_array input.gifwill produce all the bytes from the input.gif in unaltered form in a C array,
ready to use in this code:
LV_IMAGE_DECLARE(my_gif_image_array);
lv_obj_t * img;
img = lv_gif_create(lv_screen_active());
lv_gif_set_color_format(img, LV_COLOR_FORMAT_ARGB8888);
lv_gif_set_src(img, &my_gif_image_array);Using GIF Images from Files
Example:
lv_gif_set_src(widget, "S:path/to/example.gif");Note that, a file system driver needs to be registered to open images from files. To do so, follow the instructions in File System (lv_fs_drv).
Memory Requirements
To decode and display a GIF animation ~25 kB of RAM is needed plus (color format pixel size + 1) × image width × image height. RGB565 has a pixel size of 2, RGB888 has a pixel size of 3, and ARGB8888 has a pixel size of 4.
Events
LV_EVENT_READYis emitted when the GIF animation has completed rendering its last frame.
Example
Open a GIF image from file and variable
API
How is this guide?
Last updated on