Arduino OLED驱动显示XBM图片

Arduino OLED驱动显示XBM图片


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

XBM介绍

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

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

显示原理介绍

  • 例子中 4 像素的图片是怎么转换成 { 0x06 } 字节数组的?像素序列和字节数组的对应关系是什么?
    在这里插入图片描述
  1. 从左到右,从上到下,遍历像素。
  2. 激活像素记 1,非激活像素记 0,按 大端模式 排列成二进制比特序列,不足 8 位则以 0 补齐。
  3. 以 unsigned char 数组表示上述二进制比特序列,即得 xbm 格式。

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图片
    在这里插入图片描述
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值