对于具有黑色/白色像素(非灰度)的小型单色 LCD 的 8 位嵌入式系统,我需要一种有效的方式来存储和显示字体。我可能会选择两种固定宽度的字体,4x5 像素和 5x7 像素。资源非常有限:30k ROM,2k RAM。字体将以 1:1 的比例写入缓冲区,作为具有以像素为单位的给定起始偏移量的单行字符串 (char* str, byte x, byte y)
我想我会使用 1k RAM 作为缓冲区。除非有更有效的写入字体的结构,否则我会安排它以便可以按顺序写入 LCD,如下所示:
byte buffer[1024];
其中每个字节代表 8 个像素的水平线(左边的 MSB),显示的每一行都是从左到右完成的,以这种方式,从上到下。 (所以每一行由(128px/8 =)16个字节表示。)
所以我的问题是:
- 应如何存储字体?
- 缓冲区应该采用什么形式?
- 应如何将字体写入缓冲区?
我假设有一些标准算法可以解决这个问题,但我在搜索中找不到任何东西。任何建议都会非常有帮助(我不希望有人为我编写代码!!)
谢谢
最佳答案
首先,执行 bit blit ,一种具有多种用途的基元,包括绘制字符。这决定了您问题的以下答案。
- 作为位图。
- 一张位图。
- 位 block 传输。
位 blit 的实现本身涉及一堆按位操作,从源位图中重复提取一个字节或两个部分字节的组合,以与目标字节组合。
关于c - 用 C 将位图样式字体绘制到显示缓冲区的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16476778/