任何曾经需要在 Windows 之前的操作系统(即 Dos)的图形应用程序中绘制文本的人都会知道我在要求什么。
每个 ASCII 字符都可以用 8x8 像素矩阵表示。每个矩阵可以用 8 字节代码表示(每个字节用作矩阵每行的位掩码,1 位代表一个白色像素,每个 0 代表黑色像素)。
有谁知道在哪里可以找到基本 ASCII 字符的字节码?
谢谢,
体重
这个可以吗?
希望这有帮助。
来自读我。 。 .
font8x8.h 包含所有可用字符 font8x8_basic.h 包含 unicode 点 U+0000 - U+007F font8x8_latin.h 包含 unicode 点 U+0000 - U+00FF
作者:Daniel Hepper
[电子邮件受保护] 许可证:公共领域
编码每个字节的最低有效位对应于一个像素中的第一个像素 行。
字符“A”(0x41 / 65)被编码为 { 0x0C、0x1E、0x33、0x33、0x3F、0x33、0x33、0x00}
0x0C => 0000 1100 => ..XX....
0X1E => 0001 1110 => .XXXX...
0x33 => 0011 0011 => XX..XX..
0x33 => 0011 0011 => XX..XX..
0x3F => 0011 1111 => xxxxxx..
0x33 => 0011 0011 => XX..XX..
0x33 => 0011 0011 => XX..XX..
0x00 => 0000 0000 => ........
要访问一行中的第 n 个像素,请右移 n。
. . X X . . . .
| | | | | | | |
(0x0C >> 0) & 1 == 0-+ | | | | | | |
(0x0C >> 1) & 1 == 0---+ | | | | | |
(0x0C >> 2) & 1 == 1-----+ | | | | |
(0x0C >> 3) & 1 == 1-------+ | | | |
(0x0C >> 4) & 1 == 0---------+ | | |
(0x0C >> 5) & 1 == 0-----------+ | |
(0x0C >> 6) & 1 == 0-------------+ |
(0x0C >> 7) & 1 == 0---------------+
从图像转换为字节码表很简单。每次循环遍历每个图像 8x8 块,读取像素并设置字节。
https://github.com/adafruit/micropython-adafruit-bitmap-font
最易读的形式位于那边的 font_to_bin.py 文件中:
FONT = bytes((
0x00, 0x00, 0x00, 0x00, 0x00,
0x3E, 0x5B, 0x4F, 0x5B, 0x3E, […]
存储库中有用于制作滚动显示的示例,但我没有尝试。然而,我通过读取字节成功地从中提取了完整的字母表。以下是 256 个字符中的 5 个:
▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓
▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓
▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓
▓▓ ▓▓ ▓▓▓▓▓▓▓▓ ▓▓ ▓▓ ▓▓ ▓▓▓▓▓▓▓▓
▓▓▓▓▓▓▓▓▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓
▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓
▓▓ ▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓