思澈科技软件开发工具包  2.20
EZIP图片转换工具使用方法

1. 工具说明

路径:$sdk_root/tools/png2ezip/ezip.exe

用途:将PNG图片转为EZIP格式或者PIXEL格式的二进制文件或者LVGL格式的C文件,二进制文件的前4字节为文件头,文件头后即EZIP或者PIXEL格式的数据, 文件头格式如下(小端序):

文件头格式

[31:21] [20:10] [9:5] [4:0]
图片高度 图片宽度 保留 格式

格式取值

格式 含义
1 不带ALPHA的EZIP格式
2 带ALPHA的EZIP格式
4 不带ALPHA的PIXEL格式
5 带ALPHA的PIXEL格式

不带ALPHA的PIXEL格式支持RGB565和RGB888,带ALPHA的PIXEL格式支持ARGB565和ARGB888,详细格式如下(均为小端序), 工具在转换时会根据原始PNG文件是否带alpha而自动生成相应的格式,如果原图不带alpha,则生成的格式也不带alpha。

RGB565

[15:11] [10:5] [4:0]
Red Green Blue

RGB888

[23:16] [15:8] [7:0]
Red Green Blue

ARGB565

[23:16] [15:11] [10:5] [4:0]
Alpha Red Green Blue

ARGB888

[31:24] [23:16] [15:8] [7:0]
Alpha Red Green Blue

2. 使用方法

生成PIXEL格式二进制文件

  • 生成RGB565或者ARGB565
    ezip -convert png_filename.png -rgb565 -binfile 1
  • 生成RGB888或者ARGB888
    ezip -convert png_filename.png -rgb888 -binfile 1

完成后在工具目录下生成文件png_filename.bin

生成EZIP格式二进制文件

  • 生成由RGB565或者ARGB565压缩得到的EZIP文件
    ezip -convert png_filename.png -rgb565 -binfile 2
  • 生成由RGB888或者ARGB888压缩得到的EZIP文件
    ezip -convert png_filename.png -rgb888 -binfile 2

完成后在工具目录下生成文件png_filename.bin

生成PIXEL格式的LVGL C文件

  • 生成RGB565或者ARGB565格式
    ezip -convert png_filename.png -rgb565 -cfile 1 -section ROM3_IMG
  • 生成由RGB888或者ARGB888
    ezip -convert png_filename.png -rgb888 -cfile 1 -section ROM3_IMG

完成后在工具目录下生成文件png_filename.c,并指定段名.ROM3_IMG.png_filename,例如

#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
#ifndef LV_ATTRIBUTE_IMG_eZIP_RGBARGB565A
#define LV_ATTRIBUTE_IMG_eZIP_RGBARGB565A
#endif
#define LV_COLOR_DEPTH_RGB565A 3
#define LV_COLOR_16_SWAP_RGB565A 0
SECTION(".ROM3_IMG.png_filename")
const LV_ATTRIBUTE_MEM_ALIGN LV_ATTRIBUTE_IMG_eZIP_RGBARGB565A uint8_t png_filename_map[] = {
...
}

生成EZIP格式的LVGL C文件

  • 生成由RGB565或者ARGB565压缩得到的EZIP格式C文件
    ezip -convert png_filename.png -rgb565 -cfile 2 -section ROM3_IMG
  • 生成由RGB888或者ARGB888压缩得到的EZIP格式C文件
    ezip -convert png_filename.png -rgb888 -cfile 2 -section ROM3_IMG

完成后在工具目录下生成文件png_filename.c,并指定段名.ROM3_IMG.png_filename,例如

#ifndef LV_ATTRIBUTE_MEM_ALIGN
#define LV_ATTRIBUTE_MEM_ALIGN
#endif
SECTION(".ROM3_IMG.png_filename")
ALIGN(4)
const LV_ATTRIBUTE_MEM_ALIGN uint8_t png_filename_map[] = {
...