在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