一个基于Python和Tkinter的图形界面工具,用于将图片和GIF动画转换为适用于OLED显示屏的C语言数组代码。
- 支持单张图片(PNG、JPG、JPEG、BMP)
- 支持GIF动画文件(自动提取所有帧)
- 支持批量文件夹导入
- 自定义宽度和高度设置
- 常用分辨率预设(128x64、128x32、96x64、64x48)
- 实时分辨率预览和应用
- 静态预览:显示当前选中的单帧图片
- 动态预览:实时播放GIF动画效果
- 支持上一张/下一张导航
- 动画播放控制(播放/停止)
- 自定义数组名称
- 反色显示选项
- 可调节帧延迟时间
- 批量转换处理
- 生成标准C语言数组代码
- 自动生成使用示例函数
- 支持代码保存到文件
- 一键复制到剪贴板
- 从Release页面下载对应操作系统的可执行文件
- 直接运行程序,无需安装Python环境
- 克隆或下载项目源码
- 安装依赖包(Python版本建议使用3.8+):
pip install pillow numpy- 运行程序:
python main.py-
导入文件
- 点击"选择图片文件"导入单张或多张图片
- 点击"选择文件夹"导入文件夹内所有图片
- 点击"选择GIF文件"导入并提取GIF动画帧
-
设置分辨率
- 在分辨率设置区域输入宽度和高度
- 或点击预设按钮使用常用分辨率
- 点击"应用分辨率"确认设置
-
预览效果
- 在文件列表中选择文件查看静态预览
- 点击"播放动画"查看动态效果
- 使用反色选项调整显示效果
-
生成代码
- 点击"批量转换"处理所有图片
- 设置数组名称和帧延迟
- 点击"生成C代码"生成数组代码
- 保存到文件或复制到剪贴板
生成的C代码包含:
- 二维数组,格式为
const unsigned char array_name[帧数][数据大小] - 每帧数据按OLED页式显示格式组织
- 包含完整的使用示例函数
- 头文件保护宏定义
程序将图片转换为OLED显示所需的字节数组格式:
- 每8行像素组成一个页(Page)
- 每个字节代表一列的8个像素点(垂直方向)
- 数据排列顺序:按页顺序,每页内按列顺序
- tkinter: GUI界面
- PIL/Pillow: 图像处理
- numpy: 数据计算
- tempfile: 临时文件管理
GIF2C/
├── gif_example/ # gif示例
├── OLED/ # OLED配套源码
├── main.py # 主程序文件
├── icon.png # 应用程序图标
├── README_en.md # 英文说明文档
└── README.md # 说明文档
A: 请确保设置的分辨率与目标OLED显示屏一致,高度建议设置为8的倍数。
A: 调整"帧延迟"设置,单位为毫秒,数值越大播放越慢。
A: 参考代码中的使用示例函数,需要配合OLED显示屏的显示函数使用。
A: 程序会自动将透明背景转换为黑色,建议使用不透明背景的图片。
- 开发者: e0_7
- 版本: 1.0
- 许可证: MIT License
- 初始版本发布
- 支持图片和GIF转换
- 实现图形化操作界面
- 生成标准C语言数组代码
如有问题或建议,请通过以下方式联系:
- 提交GitHub Issue
- 发送邮件至开发者联系我
注意: 本工具生成的代码适用于基于SSD1306等OLED显示屏的嵌入式项目,使用时请确保显示驱动与数据格式匹配。