load jpg image to memory
lvgl加载图片资源解码时间比较长,可以预先缓存到缓存中。
本方案时候lvgl-7,下面是参考
实施:
lv_img_cache_set_size(cachecount); //设置缓存的图片张数
lv_img_cache_invalidate_src(NULL); //清除缓存,不会自动释放,需要手动释放。
//参数为NULL表示清除所有,
//参数可以设置为指定图片路径
JPG解码函数:
下面函数是手动把JPG图片解码,并存入到lvgl缓存中。
my_static_decoder_read_line函数是对函数static lv_res_t decoder_read_line( lv_img_decoder_t * decoder, lv_img_decoder_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_coord_t len, uint8_t * buf )的封装。
decoder_read_line()在display/lv_drivers/decoder/sjpg,是lvgl的解码库。在lv_sjpg.c文件中。可以封装成自己的函数,在外面调用。
sprintf(str_mp4, "S:/01_00%03d.jpg", i);
//lv_img_set_src(aps_data->img_mp4, str_mp4);
//lv_obj_set_

本文介绍了LVGL加载图片资源时的解码时间问题,并提出通过预缓存图片到内存来加速,使用`lv_img_cache_set_size`设置缓存大小,以及自定义`my_static_decoder_read_line`函数实现JPG图片的内存解码,从而实现实时播放达到100fps。
1091

被折叠的 条评论
为什么被折叠?



