2

我正在尝试编写一些使用 freetype2 来呈现一些文本的软件。

然而,我目前开发的条件使得在我的程序中提供 ttf 字体真的很困难。我陷入了死胡同,但后来我看到 freetype2 为我们提供了一个FT_New_Memory_Face函数,它可以从内存中加载一张新面孔。

freetype2 的文档指出我必须打开一个文件,并将其内容加载到内存中的某个位置才能使用它。但同样,这并不能解决我的问题。是否有可能拥有像静态缓冲区这样的东西来保存 ttf 文件的数据,并且我可以将其传递给 FT_New_Memory_Face?我正在考虑类似于 GIMP 将图像导出为 C 源代码的方式。

我找到了'font2c',它声称可以这样做(??),但每当我尝试加载我的 TTF 字体文件时,我都会收到如下错误:

$ font2c 宋体 arial.c

转换 Arial 字体。
字体名称是 /Arial。
错误:/invalidfileaccess in --file--
操作数栈:
   --nostringval-- cfile (arial.c) (w)
执行栈:
   %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1910 1 3 %oparray_pop 1909 1 3 % oparray_pop 1893 1 3 %oparray_pop 1787 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- -- nostringval---nostringval--
字典栈:
   --dict:1166/1684(G)-- --dict:0/20(G)-- --dict:84/200(L)-- --dict:52/100(L)--
当前分配模式是本地的
当前文件位置是 20084
GPL Ghostscript 9.06:不可恢复的错误,退出代码 1

我能做些什么????提前致谢!

PS。抱歉英语不好,我不是母语人士

4

1 回答 1

2

您可以使用该实用程序xxd(作为 vim 的一部分分发)和-i将二进制文件转换为 C 源代码的选项,这将创建一个包含该文件内容的数组。

于 2013-06-19T11:14:16.610 回答