1. 工具简介
这是一款专为表盘设计的轻量级工具。它能够将单张静态图片(如表盘背景或 UI 元素)自动转换为 30 帧亮度逐级递增的 PNG 序列图。通过独特的动态分辨率算法,它在保证视觉效果的同时,极大地缩减了序列图的总体积,解决了手环表盘资源包(bin/ver)大小受限的痛点。
2. 核心技术栈
- 开发语言: Python 3.7+
- 图形界面: Tkinter (支持
tkinterdnd2高级拖拽) - 处理引擎: FFmpeg (工业级多媒体处理工具)
scale:阶梯式下采样(暗部自动缩小,亮部恢复原尺寸)。
3. 环境配置与需求
要运行此程序,你需要准备以下环境:- 核心依赖: 必须安装 FFmpeg。
- 注意: 请确保将
ffmpeg.exe路径添加到系统的“环境变量 (PATH)”中。
- 注意: 请确保将
- 硬件要求: 无特殊要求,普通 PC 即可在几秒内完成 30 帧生成。
4. 使用场景:小米手环表盘开发
这是该工具最核心的应用场景。小米手环(以及相似的穿戴设备)在处理“亮屏动画”时有以下特点:- 模拟 AOD 到亮屏: 通过 30 帧图片快速播放,模拟从完全黑暗(0%)到完全点亮(100%)的过程。
- 存储空间限制: 穿戴设备内存极小。本工具通过在图片较暗(肉眼看不清细节)时降低分辨率,在图片较亮时恢复分辨率,显著降低了 PNG 文件的平均体积。
- 透明度保留: 生成的序列图完美保留原图的 Alpha 透明通道,方便你叠加在不同的表盘背景上。
5. 完整功能清单
| 功能 | 描述 |
| ✔ 自动化 30 帧 | 一键生成从 0% 亮度到 100% 亮度的完整序列。 |
| ✔ 智能命名 | 自动提取原文件名,生成如 bg_1.png 到 bg_30.png。 |
| ✔ 空间节约策略 | 5 级阶梯分辨率调整(70% -> 100%),兼顾画质与体积。 |
| ✔ 色彩无损 | 使用 RGB 查找表计算,不会出现发灰或偏色现象。 |
| ✔ 隐藏式处理 | 自动隐藏 FFmpeg 命令行黑窗口,UI 界面实时显示日志。 |
| ✔ 跨平台交互 | 支持点击选择文件,也支持直接将文件拖入窗口。 |
6. 如何使用
- 运行程序: 启动
brightness_res_gui.py。 - 导入素材: 将你的表盘素材(PNG/JPG)拖入窗口,或点击“选择图片”。
- 开始生成: 点击“开始执行”。
- 获取结果: 生成结束后,点击“打开输出文件夹”,你会看到一个名为
output_frames的目录,里面已经整齐排列好了 30 张针对手环优化的序列图。
