带有位图字体的 C 头文件

标签 c fonts header bitmap

我需要对像素缓冲区做一些基本的文本渲染,我认为有一个由 char 索引的表,并将字母表示为二进制数组就足够了......任何人都知道一个免费的标题就这样?

例子:

char data[256][8][8];
void init()
{
  data['a'] = {
    {0,0,1,1,1,0,0,0},
    {0,1,0,0,0,1,0,0},
    {0,0,0,0,0,0,1,0},
    {0,0,1,1,1,0,1,0},
    {0,1,0,0,0,1,1,0},
    {0,1,0,0,0,0,1,0},
    {0,1,0,0,0,1,1,0},
    {0,0,1,1,1,0,1,0},
  };
}

我可以继续学习字母表的其余部分,但那样我就不需要问...¡但这给了我一个主意!如果没有现成可用的带有位图字体的免费标题,每个答案都可以实现一个字母,我可以在这里组装整个文件 ^_^

最佳答案

更新:我试过这种方法,结果字符相当扭曲。 Nimbus 可能是一个糟糕的字体选择。

使用 imagemagick 方法。你可以用这个生成每个字符:

convert -resize 7x13\! -font Nimbus-Mono-Regular -pointsize 10 label:A A.xbm

A.xbm 看起来像:

#define A_width 7
#define A_height 13
static char A_bits[] = {
  0x00, 0x00, 0x00, 0x00, 0x1C, 0x08, 0x00, 0x3C, 0x00, 0x66, 0x00, 0x00,
  0x00, };

遍历所需的字符并将其组装到单个头文件中。

尽管 Nimbus-Mono-Regular 是一种等宽字体,但有时字符宽度会偏离一个像素。转换选项“-resize 7x13!”强制 7x13 输出大小。同样,这可能是 Nimbus 字体特有的问题。

关于带有位图字体的 C 头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2156572/

相关文章:

jquery - 如何用最小值制作大字体。用户偏好的字体大小

java - android中文件的访问路径作为字符串

r - 如何在 macOS 上安装和定位 ODBC 头文件 sql.h 和 sqlext.h

c - 如何使用 fmusdk 将 c 文件/函数导出到 FMU

c - socket() 中的类型和协议(protocol)有什么区别?

c - 与 Safari Web Inspector 中使用 libxml2 类似的 DOM 树

fonts - 编程字体和语法高亮测试/示例文本

使用 ColdFusion 重定向到 UTF-8 URL

javascript - 如何使标题在向下滚动时隐藏,并在向上滚动 5 倍时显示(如 google+)?

c - C 中的 float