Arduino OLED驱动显示XBM图片
Posted perseverance52
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino OLED驱动显示XBM图片相关的知识,希望对你有一定的参考价值。
Arduino OLED驱动显示XBM图片
如果我们想在OLED屏幕上显示图片,我们最常规的做法就是先将图片取模后,在将取模得到的数组存进单片机能读到的地方,今天介绍的是常见图片格式xbm格式图片显示。
XBM介绍
xbm
格式是用文本编码二进制表示黑白图片的格式,只能表示单色像素(黑白),能直接编译到应用程序内。
在用单片机驱动小尺寸液晶屏绘图的时候,由于片上算力和资源有限,把图片转换成 xbm 格式直接编译进固件是个很常见的操作。
显示原理介绍
- 例子中 4 像素的图片是怎么转换成 { 0x06 } 字节数组的?像素序列和字节数组的对应关系是什么?
- 从左到右,从上到下,遍历像素。
- 激活像素记 1,非激活像素记 0,按 大端模式 排列成二进制比特序列,不足 8 位则以 0 补齐。
- 以 unsigned char 数组表示上述二进制比特序列,即得 xbm 格式。
XBM图片相关驱动库函数
- esp8266-oled-ssd1306库显示
xbm
图片:
// Draw a XBM
void drawXbm(int16_t x, int16_t y, int16_t width, int16_t height, const uint8_t *xbm);
- 使用
U8G2
库显示XBM
图片:
u8g2.drawXBM:绘制内存 RAM 中 XBM 图像
u8g2.drawXBMP:绘制 FLASH 中 XBM 图像(可以在UNO上节约宝贵内存)
图片格式转换网站
该网址提供的是全图转换,如果你要指定大小的图片,先提前处理好图片尺寸,再进行转换。
转换示例
以这图为例:(图片来源:https://hub.fastgit.org/)
转换后的图片使用看图软件打开预览(截图显示,Markdown不支持xbm图片格式载入)
- 除了可以使用看图软件打开,还可以使用文本编辑器打开,查看十六进制编码,我这里以VSCode打开xmb图片
以上是关于Arduino OLED驱动显示XBM图片的主要内容,如果未能解决你的问题,请参考以下文章
Arduino ESP8266+OLED可视化音乐频谱:11段分频1.3寸OLED显示频谱线
Arduino ESP32 0.96OLED I2C屏幕驱动显示
STM32F103C8T6在Arduino框架下驱动SH1106 1.3“ IIC OLED显示
ESP32/8266 + Arduino SSD1306库驱动OLED