feat(libs): add libpng decoder (#4569)

Signed-off-by: pengyiqiang <pengyiqiang@xiaomi.com>
Co-authored-by: pengyiqiang <pengyiqiang@xiaomi.com>
Co-authored-by: Gabor Kiss-Vamosi <kisvegabor@gmail.com>
This commit is contained in:
_VIFEXTech
2023-09-25 16:28:35 +08:00
committed by GitHub
parent 2f67d804ce
commit 9937138392
19 changed files with 563 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
Open a PNG image from file
--------------------------
.. lv_example:: libs/libpng/lv_example_libpng_1
:language: c

View File

@@ -0,0 +1,38 @@
/**
* @file lv_example_libpng.h
*
*/
#ifndef LV_EXAMPLE_LIBPNG_H
#define LV_EXAMPLE_LIBPNG_H
#ifdef __cplusplus
extern "C" {
#endif
/*********************
* INCLUDES
*********************/
/*********************
* DEFINES
*********************/
/**********************
* TYPEDEFS
**********************/
/**********************
* GLOBAL PROTOTYPES
**********************/
void lv_example_libpng_1(void);
/**********************
* MACROS
**********************/
#ifdef __cplusplus
} /*extern "C"*/
#endif
#endif /*LV_EXAMPLE_LIBPNG_H*/

View File

@@ -0,0 +1,31 @@
#include "../../lv_examples.h"
#if LV_BUILD_EXAMPLES
#if LV_USE_LIBPNG
/**
* Open a PNG image from a file
*/
void lv_example_libpng_1(void)
{
lv_obj_t * img;
img = lv_image_create(lv_scr_act());
/* Assuming a File system is attached to letter 'A'
* E.g. set LV_USE_FS_STDIO 'A' in lv_conf.h */
lv_image_set_src(img, "A:lvgl/examples/libs/libpng/png_demo.png");
lv_obj_center(img);
}
#else
void lv_example_libpng_1(void)
{
lv_obj_t * label = lv_label_create(lv_scr_act());
lv_label_set_text(label, "LibPNG is not installed");
lv_obj_center(label);
}
#endif
#endif

View File

@@ -0,0 +1,11 @@
#!/opt/bin/lv_micropython -i
import lvgl as lv
import display_driver
import fs_driver
fs_drv = lv.fs_drv_t()
fs_driver.fs_register(fs_drv, 'S')
image = lv.image(lv.scr_act())
image.set_src("S:png_demo.png")
image.center()

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -19,6 +19,7 @@ extern "C" {
#include "freetype/lv_example_freetype.h"
#include "gif/lv_example_gif.h"
#include "lodepng/lv_example_lodepng.h"
#include "libpng/lv_example_libpng.h"
#include "qrcode/lv_example_qrcode.h"
#include "rlottie/lv_example_rlottie.h"
#include "tjpgd/lv_example_tjpgd.h"