LVGL官方转换网站
使用流程
下载一张图片。
进入到网站
LVGL8和LVGL9的转换区别是:LVGL9只能生成高指令的图片。
LVGL8使用
// 1. 声明图片变量
LV_IMG_DECLARE(my_image_name);
// 2. 创建图像对象
lv_obj_t * img_obj = lv_img_create(lv_scr_act());
// 3. 设置图像源
lv_img_set_src(img_obj, &my_image_name);
//用的时候必须自己上色:
lv_obj_set_style_img_recolor(img_obj, lv_color_white(), 0);
LVGL v8 与 v9 图像处理核心区别
除了使用方式,v8 和 v9 在图像处理的底层机制上也有显著差异。
| 特性 | LVGL v8 | LVGL v9 |
|---|---|---|
| 声明宏 | LV_IMG_DECLARE | LV_IMAGE_DECLARE |
| 图像对象 | lv_img_... | lv_image_... |
| 图像描述符 | lv_img_dsc_t 结构体,包含 .header 等字段 | 结构体简化,去除了冗余的 .header 封装,直接包含 cf, w, h, data_size 等字段 |
| 颜色格式枚举 | LV_IMG_CF_... (如 LV_IMG_CF_TRUE_COLOR_ALPHA) | LV_COLOR_FORMAT_... (如 LV_COLOR_FORMAT_RGB565A8) |
| 颜色深度 | lv_color_t 类型取决于 LV_COLOR_DEPTH 配置 | lv_color_t 始终为 RGB888,与显示颜色深度解耦 |
| 缓冲区大小单位 | 像素单位 (buf_size_px) | 字节单位 (buf_size_byte) |
| 转换工具兼容性 | 官方在线转换器输出 v8 格式 | 官方在线转换器的 v8 输出与 v9 不兼容,需使用 v9 工具或 Python 脚本 |