Ascii 字符像素图的字节码?

问题描述 投票:0回答:7

任何曾经需要在 Windows 之前的操作系统(即 Dos)的图形应用程序中绘制文本的人都会知道我在要求什么。

每个 ASCII 字符都可以用 8x8 像素矩阵表示。每个矩阵可以用 8 字节代码表示(每个字节用作矩阵每行的位掩码,1 位代表一个白色像素,每个 0 代表黑色像素)。

有谁知道在哪里可以找到基本 ASCII 字符的字节码?

谢谢,
体重

graphics text drawing
7个回答
4
投票

这个可以吗?

希望这有帮助。


3
投票

3
投票
自我回答,因为用户

P i 还没有(他们将其发布在对该问题的评论中)。

这个 github 存储库正是我正在寻找的

dheper/font8x8

来自读我。 。 .


8x8 单色位图字体用于渲染

包含 8x8 位图字体的头文件集合。

font8x8.h 包含所有可用字符 font8x8_basic.h 包含 unicode 点 U+0000 - U+007F font8x8_latin.h 包含 unicode 点 U+0000 - U+00FF

作者:Daniel Hepper

[电子邮件受保护] 许可证:公共领域

编码

字体中的每个字符都按行编码为 8 个字节。

每个字节的最低有效位对应于一个像素中的第一个像素 行。

字符“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---------------+
    

2
投票
5 x 7

字体 比 8 x 8 占用的空间更少。

您需要其中缺少的任何字符吗?


1
投票
这取决于字体。在 Google 中搜索 8x8 像素字体,您会发现很多不同的字体。

从图像转换为字节码表很简单。每次循环遍历每个图像 8x8 块,读取像素并设置字节。


1
投票

http://cone3d.gamedev.net/cone3d/gfxsdl/tut4-2.gif

你可以解析/处理这个位图并从中获取字节矩阵(矩阵?)


0
投票
5x8 字体的字节码可以从以下位置获取:

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 个:

▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓▓▓▓▓▓▓ ▓▓ ▓▓ ▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓▓▓▓▓▓▓▓
    
© www.soinside.com 2019 - 2024. All rights reserved.