4207浏览
查看: 4207|回复: 4

[入门教程] [2020]掌控板显示图片(三)-- 进阶版处理图片及显示动画

[复制链接]
接上一个显示图片的帖子,我们已经学会了发送一张图片数据给掌控,接下来自然是进阶版的显示动图效果(多张图片一张张显示)。

一、图片处理:
之前用到 Gimp 软件处理图片为PBM格式,处理好的 PBM 格式的图片数据:
[2020]掌控板显示图片(三)-- 进阶版处理图片及显示动画图1

注意到需要用三次 f.readline() 把前三行的数据处理掉。
数据内容如下:
第一行:P4,即 PBM 二进制数据
第二行:注释行,说明图片 timg.pbm 是由 Gimp 生成的
第三行:图像的像素为 485x377

我们还可以利用 Linux 系统中的 convert 命令来处理图片,请出虚谷号。
此处有个 benpao.jpg 的图片
[2020]掌控板显示图片(三)-- 进阶版处理图片及显示动画图2

终端下输入:
convert benpao.jpg benpao.pbm
瞬间就可以把 benpao.jpg 转化成 benpao.pbm
[2020]掌控板显示图片(三)-- 进阶版处理图片及显示动画图3

终端下输入:convert -resize 88x64! benpao.jpg benpao-01.pbm  # 88和64之间是字母'x' ,'!' 叹号是强制转换
把 benpao.jpg 强制转换为像素大小 88x64 的 benpao-01.pbm
[2020]掌控板显示图片(三)-- 进阶版处理图片及显示动画图4

利用 convert 处理好的 PBM 格式的图片数据:
[2020]掌控板显示图片(三)-- 进阶版处理图片及显示动画图5

注意到只需要两次 f.readline()处理数据:
第一行:P4,即 PBM 二进制数据
第二行:图像的像素为 88x64

当然,convert 也可以用于批量处理,有兴趣的可以看看 在 Linux 下将 PNG 和 JPG 批量互转的四种方法

二、显示动画效果
所谓显示动画效果,其实就是连续接收并显示一张张图片,形成动画效果。
俗话说有屏的地方就有 Bad Apple ,这次我们的终极目标就是显示这个。

1. Bad Apple 图片数据处理
在B站看到 WGzeyu 的视频 ESP8266驱动12864LCD播放Bad Apple!! ,通过WiFi 传输 Bad Apple 的视频,不过是基于 Arduino IDE 编程的。从他的 Github 上下载了5帧版本的 Bad Apple 图片数据(BMP格式),利用 convert 处理成 PBM格式。

2. 掌控端程序
利用之前的掌控板显示图片的程序,更改了下 oled.blit() 里的位置参数,便于居中显示 88x64 像素的图片
[2020]掌控板显示图片(三)-- 进阶版处理图片及显示动画图6

3. 电脑端程序
[2020]掌控板显示图片(三)-- 进阶版处理图片及显示动画图7

最终效果:


P.S.
感谢 WGzegu 的 Bad Apple 图片数据。
附件内容为处理好的 PBM 图片合集。
附件中 Readme.md 的内容
[2020]掌控板显示图片(三)-- 进阶版处理图片及显示动画图9
下载附件5帧badapple_pbm.zip

DFrJ5KYVQaH  中级技匠

发表于 2020-1-24 07:37:31

学无止境,学海无涯
回复

使用道具 举报

gada888  版主

发表于 2020-1-24 17:13:40

这个得学一下了
回复

使用道具 举报

且歌且行  中级技师

发表于 2020-2-15 21:54:27

太厉害了,好神奇呀~
回复

使用道具 举报

kylinpoet  初级技神

发表于 2020-2-18 08:28:05

这个好,必须支持。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail