教你理解单片机液晶屏绘图 XBM 格式

在用单片机驱动小尺寸液晶屏绘图的时候,如果用 gui 库,就几乎一定要准备 xbm 格式的文件,供 gui 绘图使用。


太长不看版

xbm 格式是用文本编码二进制表示黑白图片的格式。

点击前往 在线 XBM 格式生成器

  • 支持 lua、c 语言格式
  • 支持在线载入图片、画布绘制
  • 宽高可调、二值化阈值可调

xbm 是一种非常古老的图片文件格式,最早用于 X Window System,具有如下特性:

  • 文本编码二进制
  • 只能表示单色像素(黑白)
  • 能直接编译到应用程序内

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

举例一张最简单的 2x2 图片

它转换成 xbm 格式后,就会变成一串类 C 代码:

#define image_bits_width 2;
#define image_bits_height 2;

const unsigned char image_bits = { 0x06 };

是不是很熟悉的味道?没错,xbm 是 C 语言源文件,这意味着 它们不是由图形显示程序读取,而是由 C 编译器读取

但你可能会问,例子中 4 像素的图片是怎么转换成 { 0x06 } 字节数组的?像素序列和字节数组的对应关系是什么?

如下图所示:

  1. 从左到右,从上到下,遍历像素
  2. 激活像素记 1,非激活像素记 0,按 大端模式 排列成二进制比特序列,不足 8 位则以 0 补齐
  3. unsigned char 数组表示上述二进制比特序列,即得 xbm 格式

由于目前能找到的 xbm 格式转换器不多,好用的更少,怎么办?当然是自己撸一个。

点击前往 在线 XBM 格式生成器

  • 支持 lua、c 语言格式
  • 支持在线载入图片、画布绘制
  • 宽高可调、二值化阈值可调

参考:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值