OLED显示GIF图片(可直接生成Arduino代码)-Arduino中文社区 - Powered by Discuz! Archiver

王尼玛1 发表于 2021-7-30 14:37

OLED显示GIF图片(可直接生成Arduino代码)

本帖最后由 王尼玛1 于 2021-9-7 17:59 编辑

首先欣赏一下音乐

https://link.jscdn.cn/sharepoint/aHR0cHM6Ly8xZHJpdi1teS5zaGFyZXBvaW50LmNvbS86dTovZy9wZXJzb25hbC9zdG9yXzFkcml2X29ubWljcm9zb2Z0X2NvbS9FYl8yTGxNekZEUkZxNkJCWV9qaFhrd0JNN2NOdmlqc2NMbC04QUtmTEo0bGZB.m4a
一.前言
如果要让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




frankhan747 发表于 2021-7-31 14:18

名为F***的文件夹可太生草了:lol

王尼玛1 发表于 2021-8-1 15:52

frankhan747 发表于 2021-7-31 14:18
名为F***的文件夹可太生草了

哈哈哈哈哈哈哈哈哈哈哈哈

Specher 发表于 2021-8-27 15:53

连接失效了 能再发下吗

王尼玛1 发表于 2021-8-27 20:51

Specher 发表于 2021-8-27 15:53
连接失效了 能再发下吗

没有失效呀,能打开的

Specher 发表于 2021-8-29 17:38

可以下载了 很好用 谢谢分享

王尼玛1 发表于 2021-8-30 10:46

Specher 发表于 2021-8-29 17:38
可以下载了 很好用 谢谢分享

这个有BUG的,生成的图片顺序会乱导致最后显示的时候会不流畅,现已修复,并且增加了一些功能

63062061 发表于 2021-9-7 13:46

感谢分享,太厉害了

TDL_KING 发表于 2022-1-8 10:19

为什么我的笑脸是这个样子的啊,大佬求解

王尼玛1 发表于 2022-1-8 12:41

TDL_KING 发表于 2022-1-8 10:19
为什么我的笑脸是这个样子的啊,大佬求解

上下左右都反了,试下01反转选项(选中和不选中都试一下)
页: [1] 2
查看完整版本: OLED显示GIF图片(可直接生成Arduino代码)