我目前正在将我的图像硬编码到我的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,所以没问题)
谢谢!
答案 0 :(得分:1)
It seem Font有一个很好的loadFromMemory
方法。因此,您可以完全按照上一个示例使用它,以字符串文字显示数据并将其传递。
编写一个能够以适合包含的\ xHH hexdump格式转换二进制文件的程序并不难。
答案 1 :(得分:0)
好的,这是我的解决方案:
我使用工具Bin2h(http://www.deadnode.org/sw/bin2h/)创建以下代码:
unsigned int fontSize = 22256;
unsigned char fontChar[] = {
0x00,0x01,0x00,...
};
然后我用
font.loadFromMemory(fontChar, fontSize)
加载字体。