Image Convert Tool

Image Convert Tool 是一款图片转换工具。他能够将多种常见格式的图片文件(如 PNG、JPG、BMP 等)转换为目标格式的 RGB 原始数据。此外,该工具还提供数据压缩功能,可以根据用户设置对转换后的原始数据进行压缩处理。这一过程实现了从多种图片格式到压缩 RGB 数据的灵活转换。

界面说明

图片转换工具界面如下:

../../_images/UI_Description.png

图片转换工具界面

  1. 导入图片按键:点击该按键可导入所选文件夹及其子文件夹中所有 PNG、JPG 和 BMP 格式的图片。

  2. 转换按键:在导入文件并修改转换设置后,点击此按键开始图片转换过程。

  3. 图片列表面板:显示所有已导入的文件夹和图片。

  4. 所选图片预览:显示当前选中的图片。

  5. 转换设置面板:显示所选图片的转换参数。

  6. 设置 按键:点击以展开设置选项,包括:UI 主题切换、图片转换设置及工具信息显示。

  7. UI 风格切换:在明亮风格和黑暗风格之间切换。有些图片在黑暗风格下可能显示更清晰的细节。

  8. 图片转换设置:点击进入图片转换参数配置页面。

图片转换步骤

图片转换步骤如下:

../../_images/Convert_Steps.png

图片转换步骤

  1. 打开图片文件夹,会导入文件夹及子文件夹内部的 PNG、JPG、BMP 图片

  2. 点击 Setting 按键,进入图片转换设置页面

    ../../_images/Setting_Default.png

    图片转换默认设置

    Image Convert Tool 提供一份默认设置,对于未设置转换参数的图片,将按照 default 参数进行转换,default 参数不可删除。

    可以按图片后缀对图片添加转换参数,Image Convert Tool 会按图片后缀对应的转换参数对图片进行转换。

    以 PNG 图片为例,转换参数的添加步骤如图所示:

    ../../_images/Convert_Setting.png

    添加转换设置

    1. 选择转换图片类型,可以为 bmp、jpg、png。

    2. 点击 Add 按键,此时会添加 PNG 图片对应的转换参数。

    3. 如果想删除转换参数,可以点击 Delete 按键进行删除。

    各转换参数的含义,参考下表:

    参数名称

    说明

    Compress

    是否进行压缩。

    Adaptive

    勾选后,会自动进行 RLE 或者 Fastlz 的压缩,并保留压缩率更高的结果。勾选后将不能手动配置压缩参数。

    Compress Mode

    RLE

    RLE Level

    1:RLE 1 阶压缩。

    2:RLE 2 阶压缩。

    RLE Run Length1

    1 阶 RLE 压缩算法 Run Length。

    RLE Run Length2

    2 阶 RLE 压缩算法 Run Length,RLE Level 为 2 阶时生效。

    FastLz

    YUV_Sample_Blur

    YUV_Sample_Blur+FastLz

    Sample Mode

    YUV 降采样算法,支持:YUV444、YUV422、YUV411。

    Blur Mode

    每个 Byte 丢弃的 bit 位数,从最低位开始,支持:0 bit、1 bit、2 bit、4 bit。

    Resize

    是否缩小图片,支持:按 50% 缩小、按 70% 缩小、按 80% 缩小。缩小后 SoC 会对图片进行恢复,勾选会降低图片质量。

    Lower Width

    大于 Lower Width 的图片会被 Resize。

    Lower Height

    大于 Lower Height 的图片会被 Resize。

    Mix Alpha Channel

    RGBA 转换为 RGB、RGB565 时,是否需要混合 A(透明度)通道。

    勾选后,R = R * A /255,G = G * A /255,B = B * A /255;否则 A 通道的值会被丢弃。

    Scan Mode

    Horizontal

    图片按行扫描。

    Vertical

    图片按列扫描。

    Color Space

    图片转换使用的颜色空间,包括:RGB565、RTKARGB、RTKRGAB、RGB、RGBA、BINARY、RTKARGB8565。

    备注

    RLE、FastLZ 压缩算法对具有大量连续重复像素值的图像具有很好的效果;对于由复杂纹理构成或者噪声很多的图像压缩效率相对较差,有些图片压缩后甚至会比原来的图像更大。

    还有一些全局参数设置,如下图所示:

    ../../_images/Global_Setting.png

    全局参数设置

    • IC 选择:

      • 默认是 Default

      • 还可以选 RTL8773E 或者 RTL8773G

    • Color Head:图片转换后是否需要添加头部信息,默认勾选,Realtek SoC 需要这些头部信息进行图片的解析与显示

    • Big Endian:导出的 RGB 原始数据在内存中的排布顺序

      • 不勾选:内存由低字节 -> 高字节按照 B -> G -> R -> A 解析

      • 勾选:按照 A -> R -> G -> B 解析

    • Bin Path:输出文件夹路径,为空时,转换后的文件会生成到导入文件夹下

    • Base Address:图片写入 Flash 中的基地址

    • Prefix of Image Macro:图片宏定义前缀

    • Suffix of Image Macro:图片宏定义后缀

    • 是否对图片名称就行转换,可以点击 .h 文件进行预览,如下图所示:

      • No Convert:不转换

      • ToUpperCase:转换为大写

      • ToLowerCase:转换为小写

    ../../_images/H_Preview.png

    .h 文件预览

  3. 进行图片转换,会按照转换参数执行转换操作,并在转换结束后打开结果文件夹。

输出文件

转换后,将生成以下文件:

../../_images/OutPut.png

输出文件

  • resource 文件夹,存放转换后图片的 bin 文件

  • detail.xlsx,保存转换信息,包括:图片名称、压缩算法、原始图片大小、转换后图片大小、压缩率等

  • image.bin,所有转换后的 bin 文件按 64 Byte 对齐进行拼接

  • wristband_pic_res.h,宏定义文件,描述所有 bin 在 flash 中存放的地址

Bin 文件结构

单个 bin 文件的结构如下图所示:

../../_images/Bin_Structure.png

Bin 文件结构

Color Header 说明如下表所示:

Color Header 说明

参数名称

参数说明

Scan

扫描方式,0:水平方向;1:竖直方向

Align

是否对齐,0:不对齐;1:16像素对齐

Resize flag

行、列缩放比例,0:不缩放;1:缩放到50%;2:缩放到70%;3:缩放到80%

Compress

是否压缩,0:不压缩;1:压缩

RSVD

预留

Color Space

图片转换时使用的颜色空间对应值,参考 颜色空间说明

Width

原图片宽度

Height

原图片高度

Version

Color Header 版本

RSVD

预留

Color Space 对应的值如下表所示:

颜色空间说明

颜色空间名称

说明

RGB565

0

16位RGB模式,位 4-0 代表蓝色Blue;位 10-5 代表绿色Green;位 15-11 代表红色Red

ARGB8565

1

24位ARGB模式,位 4-0 代表蓝色Blue;位 9-5 代表绿色Green;位 14-10 代表红色Red;位 23-15 代表透明度Alpha

RGB

3

24位RGB模式,位 7-0 代表蓝色Blue;位 15-8 代表绿色Green;位 23-16 代表红色Red

ARGB

4

32位RGBA模式,位 7-0 代表蓝色Blue;位 15-8 代表绿色Green;位 23-16 代表红色Red;位 31-24 代表透明度Alpha

BINARY

5

灰度图,每个像素由 8 bit 表示

RTKARGB8565

15

RTK 自定义 24 位 ARGB 模式,A 占 1 Byte,RGB565 共同占 2Byte,先按序存储所有的 A,后按序存储所有的 RGB565

Compress Header 说明如下:

Compress Header 说明

参数名称

参数说明

Algothrim

压缩算法,0:RLE;1:FastLz;2:YUV_Sample + FastLz;3:YUV_Sample

Feature1

1 阶 RLE 压缩算法 Run Length

Feature2

2 阶 RLE 压缩算法 Run Length

Pixel Bytes

每个像素占用的字节数,0:2 字节;1:3 字节;2:4 字节;3:1 字节