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.