对于具有黑/白像素(非灰度)的小型单色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字节表示。)
所以我的问题:
我认为这有一些标准算法,但我在搜索中找不到任何东西。任何建议都会非常有用(我不希望有人为我编码!)
由于
答案 0 :(得分:2)
作为第一个剪辑,实现bit blit,一个有很多用途的图元,包括绘图字符。这决定了你的问题的以下答案。
bit blit本身的实现涉及一堆按位操作,重复从源位图中提取字节或两个部分字节的组合,以与目标字节组合。