docs/src/xml/assets/images.rst
.. include:: /include/substitutions.txt .. _xml_images:
Overview
In XML, images are considered external resources that need to be named in order to be referenced in XML files. Below is how to map images with names.
Registering Images
If the images are used as files (e.g., PNG images loaded from a file system),
they can be simply added to globals.xml:
.. code-block:: xml
<images>
<file name="avatar" src_path="images/avatar1.png"/>
<file name="logo" src_path="images/path/to/my_logo.png"/>
</images>
When registering globals.xml with
:cpp:expr:lv_xml_register_component_from_file("A:path/to/globals.xml"),
names are automatically mapped to the path.
The images can have relative paths in globals.xml. Before registering globals.xml,
:cpp:expr:lv_xml_set_default_asset_path("path/prefix/") can be called to set the parent folder.
The path of the image files will be appended to the path set here.
If the images are converted to arrays and compiled into the firmware, they need to be registered explicitly using:
.. code-block:: cpp
lv_xml_register_image(NULL, "image_name", &my_image)
where my_image is an :cpp:type:lv_image_dsc_t.
After that, it can be used identically to image files:
.. code-block:: xml
<lv_image src="image_name" align="center"/>
Usage in XML
After registration, the images can be referenced by their name:
.. code-block:: xml
<lv_image src="avatar" align="center"/>
Notes for the UI Editor
When using LVGL's UI Editor, images can be added to globals.xml using the
<data> tag instead of <file>.
In this case, the Editor will generate the C array (:cpp:type:lv_image_dsc_t)
and also generate code to register the images.
It's also possible to set the target color_format="..." of the images. All typical
color formats are supported, like i1...i8, a1...a8, rgb565, rgb888, argb8888, etc.