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