0
点赞
收藏
分享

微信扫一扫

lvgl的图片使用

独兜曲 2022-01-28 阅读 264

        界面库lvgl使用图片有三种方式:

1、将图片转换为源文件使用

        转为源文件使用则需要使用在线或者离线图片转换工具,在线转换工具可使用官方提供的icon-default.png?t=M0H8https://lvgl.io/tools/imageconverter        离线转换工具可以用git上大神封装的Windows版本的Lvgl_image_convert_tool: 基于LVGl图片转换离线版封装的小工具,不仅有界面,还可以一键生成到项目里哦 (gitee.com)icon-default.png?t=M0H8https://gitee.com/gzmarkz/Lvgl_image_convert_tool        也挺好用,自行下载,使用方法就不多说了,一看就会。

        转换生成的代码放到自己的工程中,然后在代码中添加:        

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);

        则可以正常显示图片。

        此方法的好处是不管是png、jpg还是gif格式,基本都能通过这种方式来使用,但却有个坏处,就是图片文件本身并不大,但转换后的源码文件却比较大,比如我试过一张图片不到100k,转换后的源文件就又10+M,这样对于嵌入式系统本身存储较小的就会是个问题。

2、直接使用图片

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

        具体使用的代码很简单,连图片变量的声明都不需要了,像这样:

        

lv_obj_t * img = lv_img_create(lv_scr_act());
lv_img_set_src(img, "./lv_lib_png/png_decoder_test.png");

       实际操作却不像代码看上去那么简单,首先需要打开lv_conf.h中指定图片格式功能的宏定义,如LV_USE_PNG等,可以看头文件中支持哪些方式。我尝试了这种方法,但均没有正常显示出图片,待继续研究明白后再来补充……

举报

相关推荐

0 条评论