1
0
mirror of https://github.com/lvgl/lvgl.git synced 2025-02-04 07:13:00 +08:00
lvgl/docs/details/libs/bmp.rst
2025-02-03 19:59:05 -03:00

61 lines
1.6 KiB
ReStructuredText

.. _bmp:
===========
BMP Decoder
===========
This BMP Decoder utility allows you to use images from .BMP files in LVGL.
Library source: https://github.com/caj-johnson/bmp-decoder
Instead of loading the whole image at once, BMP pixels are read on demand,
so using BMP images requires very little RAM.
If enabled in ``lv_conf.h`` by setting :c:macro:`LV_USE_BMP` to ``1``, LVGL will
register a new image decoder automatically so BMP files can be directly used as image
sources. Example:
.. code-block:: c
lv_image_set_src(my_img, "S:path/to/picture.bmp");
Note that, a :ref:`file_system` driver needs to registered to open images from
files. Follow the instructions in :ref:`file_system`.
.. _bmp_limitations:
Limitations
***********
- Only BMP files are supported. BMP images as C arrays
(:c:struct:`lv_image_dsc_t`) are not. This is because there is no practical
differences between how the BMP files and LVGL's image format stores
the image data.
- BMP files can be loaded only from .BMP files. If you want to store them in
flash it's better to convert them to a C array with `LVGL's image converter <https://lvgl.io/tools/imageconverter>`__.
- The BMP file's color format needs to match the configured :c:macro:`LV_COLOR_DEPTH`
of the display on which it will be rendered. You can use GIMP to save the image
in the required format. Both RGB888 and ARGB888 works with
:c:macro:`LV_COLOR_DEPTH` ``32``
- Color palettes are not supported.
- Because the whole image is not loaded, it cannot be zoomed or rotated.
.. _bmp_example:
Example
*******
.. include:: ../../examples/libs/bmp/index.rst
.. _bmp_api:
API
***