|
|
2 years ago | |
|---|---|---|
| .. | ||
| .gitignore | 4 years ago | |
| LICENSE | 4 years ago | |
| README.md | 4 years ago | |
| lodepng.c | 2 years ago | |
| lodepng.h | 2 years ago | |
| lv_png.c | 2 years ago | |
| lv_png.h | 4 years ago | |
| png_decoder_test.png | 4 years ago | |
Allow the use of PNG images in LVGL. This implementation uses lodepng library.
git clone https://github.com/littlevgl/lv_lib_png.git#include "lv_lib_png/lv_png.h"lv_png_init()Test with the following code:
LV_IMG_DECLARE(png_decoder_test);
lv_obj_t * img = lv_img_create(lv_scr_act(), NULL);
lv_img_set_src(img, &png_decoder_test);
By deafult lodepng uses C file IO API (e.g. fopen) and images can be opened like this:
lv_img_set_src(img, "./lv_lib_lodepng/png_decoder_test.png");
If you want to make lodepng to use LVGL's file system API add #define LV_PNG_USE_LV_FILESYSTEM 1 to the end of yourlv_conf.h.
In this case you need to register a driver fo LVGL. The following functions are required:
open_cb()read_cb()close_cb()size_cb()After that fiels can be opened like this:
lv_img_set_src(img, "P:lv_lib_lodepng/png_decoder_test.png");
Note that the path of the file might be different.
To store a PNG image in flash it needs to be converted to C array with Online Image converter. Choose Raw with alpha Color format and C array Output format. Copy the result C array to your project and use it like this:
LV_IMG_DECLARE(my_test_img);
lv_obj_t * img = lv_img_create(lv_scr_act(), NULL);
lv_img_set_src(img, &my_test_img);
To learn more about the PNG decoder itself read this blog post
To learn more about the Image decoder interface of LittlevGL read the realevant part of the documentation.