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[] = { 
...