ESP LV DECODER
允许使用 LVGL 中的图像。除此之外,它还允许使用自定义格式(称为分割图像),该格式可以在嵌入式系统上以更优化的方式进行解码。
分割图像,参考 SJPG 的实现。
功能
支持标准和自定义分割图像格式,包括 JPG、PNG 和 QOI。
解码标准图像需要与完整未压缩图像大小相当的 RAM,建议用于具有更多 RAM 的设备。
分割图像是基于标准图像格式的自定义格式,专为 LVGL 设计。
文件存储和 C 数组均实现了文件读取。
分割图像分段解码,因此不支持缩放和旋转。
设置图片转换格式
依赖组件 esp_mmap_assets 。 它会在编译过程中自动打包图像并将其转换为所需的格式。
JPG 转换成 SJPG
spiffs_create_partition_assets(
my_spiffs_partition
my_folder
FLASH_IN_PROJECT
MMAP_FILE_SUPPORT_FORMAT ".jpg"
MMAP_SUPPORT_SJPG
MMAP_SPLIT_HEIGHT 16)
PNG 转换成 SPNG
spiffs_create_partition_assets(
my_spiffs_partition
my_folder
FLASH_IN_PROJECT
MMAP_FILE_SUPPORT_FORMAT ".png"
MMAP_SUPPORT_SPNG
MMAP_SPLIT_HEIGHT 16)
PNG、JPG 转换成 QOI
spiffs_create_partition_assets(
my_spiffs_partition
my_folder
FLASH_IN_PROJECT
MMAP_FILE_SUPPORT_FORMAT ".jpg,.png"
MMAP_SUPPORT_QOI)
PNG、JPG 转换成 SQOI
spiffs_create_partition_assets(
my_spiffs_partition
my_folder
FLASH_IN_PROJECT
MMAP_FILE_SUPPORT_FORMAT ".jpg,.png"
MMAP_SUPPORT_QOI
MMAP_SUPPORT_SQOI
MMAP_SPLIT_HEIGHT 16)
应用示例
注册解码器
在 LVGL 启动后注册解码器函数。
esp_lv_decoder_handle_t decoder_handle = NULL;
esp_lv_decoder_init(&decoder_handle); //Initialize this after lvgl starts
API 参考
Header File
Functions
-
esp_err_t esp_lv_decoder_init(esp_lv_decoder_handle_t *ret_handle)
Register the decoder functions in LVGL.
- 参数
ret_handle – Pointer to the handle where the decoder handle will be stored
- 返回
ESP_OK on success
ESP_ERR_* error codes on failure
-
esp_err_t esp_lv_decoder_deinit(esp_lv_decoder_handle_t handle)
Deinitialize the decoder handle.
- 参数
handle – The handle to be deinitialized
- 返回
ESP_OK on success
ESP_ERR_* error codes on failure
Type Definitions
-
typedef void *esp_lv_decoder_handle_t
Type of handle for the decoder.