全志d1s-tina-linux使用lvgl8.x加载png图片文件并显示

Home / C++ MrLee 2022-10-9 1313

在lvgl库的8.0版本开始,是支持直接使用图片的,8.0版本之前,因为没有集成图片格式的解码器,所以不能直接使用(一般使用官方提供的在线图片转c文件使用)。8.0之前的版本要使用需要直接添加指定图片格式的解码库,比较麻烦,8.0开始将解码库集成到了lvgl中,因此可以直接使用。 

/lvgl/src/extra/libs/png

1、首先需要打开lv_conf.h中指定图片格式功能的宏定义,如LV_USE_PNG等,头文件支持的图片文件格式有PNG、BMP、SJPG、GIF几种,这里以PNG为例说明操作步骤,修改PNG的宏定义LV_USE_PNG的值为1;

/*PNG decoder library*/
#define LV_USE_PNG 1

    2、由于使用图片文件需要用到文件系统,因此需要同时打开lvgl内置的文件系统的功能支持。lvgl内置的文件系统支持STDIO标准文件系统、POSIX文件系统、Windows的win32文件系统、以及FATFS文件系统。根据文件系统代码逻辑,只需要将对应的宏的值修改为一个字符,用来代表类似卷标的符号即可,如修改LV_USE_FS_STDIO的值为字符A:

/*File system interfaces for common APIs
 *To enable set a driver letter for that API*/
#define LV_USE_FS_STDIO 'D'        /*Uses fopen, fread, etc*/

   修改好之后,在代码中加入使用图片的代码,如:

    lv_style_t* style = getStyle("tile");
    lv_style_init(style);
    //lv_style_set_opa(style, LV_OPA_TRANSP);//全透明
    //lv_style_set_bg_color(style, lv_color_t());
    lv_style_set_bg_img_src(style, "D:/data/test.png");

图片文件所在的路径并且冒号后面这个路径是绝对路径/data/test.png

本文链接:https://www.it72.com/12719.htm

推荐阅读
最新回复 (0)
返回