Arduino OLED驱动显示XBM图片

Posted perseverance52

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino OLED驱动显示XBM图片相关的知识,希望对你有一定的参考价值。

Arduino OLED驱动显示XBM图片


如果我们想在OLED屏幕上显示图片,我们最常规的做法就是先将图片取模后,在将取模得到的数组存进单片机能读到的地方,今天介绍的是常见图片格式xbm格式图片显示。

XBM介绍

xbm 格式是用文本编码二进制表示黑白图片的格式,只能表示单色像素(黑白),能直接编译到应用程序内。

在用单片机驱动小尺寸液晶屏绘图的时候,由于片上算力和资源有限,把图片转换成 xbm 格式直接编译进固件是个很常见的操作。

显示原理介绍

  • 例子中 4 像素的图片是怎么转换成 { 0x06 } 字节数组的?像素序列和字节数组的对应关系是什么?
  1. 从左到右,从上到下,遍历像素。
  2. 激活像素记 1,非激活像素记 0,按 大端模式 排列成二进制比特序列,不足 8 位则以 0 补齐。
  3. 以 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

Arduino UNO+OLED可视化音乐频谱:32段分频0.96寸OLED显示细条频谱线

STM32F103C8T6在Arduino框架下驱动ssd1306 0.96“ IIC OLED显示