本帖最后由 王尼玛1 于 2021-9-7 17:59 编辑
首先欣赏一下音乐
一.前言
如果要让OLED显示静态图片,需要将原图转为BMP格式,然后再用图片取模软件进行取模,生成16进制代码。但如果要显示GIF动图,需要将GIF图片的每一帧都保存下来,然后再将每张图片都转为BMP格式,再进行取模,而常用的图片取模软件都是只能一张一张的取模(至少我没找到可以批量取模的),这就太麻烦了.于是闲暇之余开发了一个小程序,目前只适用于0.96寸的OLED
二.软件使用
1.在这里获取: https://gitee.com/yym001/oled-display-gif (有源文件和打包好的exe可执行文件)
2.打开软件,选择一张GIF图片,这个网站有很多素材:https://icons8.com/free-animated-icons
3.接着点击分割GIF,将会再相同目下创建一个 FUCK 文件夹,此文件夹里面即是GIF图片的每一帧
4.选择此文件夹
5.然后再当前目录下新建一个文件夹,用来保存格式转换后的图片(BMP格式),选择输出文件夹
6.点击开始转换,提示转换成功。再点击 重置图片大小,由于原图大小是200x200,而OLED的分辨率位 128x64 明显显示不下,需要缩小图片。目前强制转化为48x48
7.如果你是再我上面提供的网站下载的图片,需要勾选01翻转选项,再点击 输出16进制数组。会在你新建的文件夹里创建一个 fuck.h, 此文件即为每张BMP图的取模数据
8.我这里以 Adafruit_SSD1306 为例,如果你用的是 u8g2 ,则选择 u8g2 选项,同时需要选中 字节倒叙,再点击生成 Arduino 代码,会生成一个txt文本文档.
9.打开这个txt文件,里面即是Arduino 代码。接下只需要复制到Arduino IDE 中即可,当然需要把生成的 fuck.h 文件复制到Arduino 程序的相同子目录,否则会报错无法 找到这个文件
10.最后效果
三.注意事项
1.确保你已经有Adafruit_SSD1306 库文件和 u8g2库文件
2. 由于GIF 的是有很多帧图片构成从的。因此非常占内存,可用Arduino 2560 或,ESP8266,ESP32等内存较大的单片机
四.做一个OLED显示天气
效果演示:
教程说明:https://gitee.com/yym001/esp32oledweather/blob/master/README.md
|