如何优雅的使用Micropython在ssd1306上显示图像?
ssd1306可以说是市面上最常见的oled屏了,单色,128x64分辨率,驱动大把大把,今天主要研究怎么显示图片。一般默认驱动是不带显示图片功能的,我们使用frambuf函数来显示,创建图像显示区域,再显示即可imagebuf=framebuf.FrameBuffer(bytearray(b’’)’),84,64,framebuf.MONO_HLSB)oled.blit(imagebuf,0,0
ssd1306可以说是市面上最常见的oled屏了,单色,128x64分辨率,驱动大把大把,今天主要研究怎么显示图片。
一般默认驱动是不带显示图片功能的,我们使用frambuf函数来显示,创建图像显示区域,再显示即可
imagebuf=framebuf.FrameBuffer(bytearray(b’‘)’),84,64,framebuf.MONO_HLSB)
oled.blit(imagebuf,0,0)
oled.show()
像上面这样基本ok了,那么如果使用的图片较多,有没有批量的方法呢?
我特意写了一个小工具用于批量转换
使用方法:
将transpic.py和所有图片素材放在同一文件夹下,运行transpic.py就会自动转换所有图片文件(需要pc python 的PIL库!!!),如果嫌使用pbm文件麻烦,也生成了一个buf.txt,直接去里面粘贴代码也可以。
要注意的是由于单色屏幕表现力很有限,所以复杂的图像会显示不好,所以尽量找一些简单的,对比度大的图片,转换后如果效果不满意也可以自己手动修正一下(反正分辨率不大,改起来没有那么麻烦)
转换工具在这里:
转化工具链接
附上一个效果图,实际看着比图片看着要精致得多
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)