0

我目前正在将我的图像作为结构硬编码到我的 C++ 程序中(可以使用 GIMP 创建具有像素数据的源代码),如下所示:

static const struct {
  unsigned int   width;
  unsigned int   height;
  unsigned int   bytes_per_pixel;
  unsigned char  pixel_data[16 * 16 * 4 + 1];
} my_icon = {
  16, 16, 4,
  "...", pixel data here
};

这工作正常,我很高兴!但现在我想对我正在使用的字体文件做同样的事情。

由于 GIMP 为我进行了转换,但显然无法为我转换字体,所以我现在陷入困境,不知道如何像处理图像一样对 font.ttf 进行硬编码。

如果它有任何相关性,这就是我当前加载字体文件的方式:

sf::Font font;
if (!font.loadFromFile("font.ttf")) {
    std::cout << "Could not load font" << std::endl;
    return -1;
}

有人可以帮我吗?(字体大小小于 25 KB,所以没有问题)

谢谢!!

4

2 回答 2

1

好吧,这是我的解决方案:

我使用工具 Bin2h ( http://www.deadnode.org/sw/bin2h/ ) 创建以下代码:

unsigned int fontSize = 22256;
unsigned char fontChar[] = {
0x00,0x01,0x00,...
};

然后我用

font.loadFromMemory(fontChar, fontSize)

加载字体。

于 2013-07-04T19:47:47.507 回答
1

看来Font 有一个很好的loadFromMemory方法。因此,您可以完全按照前面的示例使用它,以字符串文字形式呈现数据并将其传递。

编写一个将二进制文件转换为适合包含的类似 \xHH hexdump 格式的程序并不难。

于 2013-07-01T14:27:19.597 回答