将ttf字体导出为C源代码

时间:2013-06-19 10:57:00

标签: c ghostscript true-type-fonts freetype

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

但是,我目前开发的条件使得使用我的程序提供ttf字体非常困难。我处于死胡同,但后来我发现freetype2为我们提供了一个 FT_New_Memory_Face 函数,它从内存中加载一个新面孔。

freetype2的文档声明我必须打开一个文件,并将其内容加载到内存中以使用它。但同样,这并没有解决我的问题。是否有可能像静态缓冲区那样保存ttf文件的数据,并且我可以将其传递给FT_New_Memory_Face ???我在考虑类似于GIMP如何将图像导出为C源代码。

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


$ font2c Arial arial.c

Converting Arial font.
FontName is /Arial.
Error: /invalidfileaccess in --file--
Operand stack:
   --nostringval--   cfile   (arial.c)   (w)
Execution stack:
   %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--
Dictionary stack:
   --dict:1166/1684(G)--   --dict:0/20(G)--   --dict:84/200(L)--   --dict:52/100(L)--
Current allocation mode is local
Current file position is 20084
GPL Ghostscript 9.06: Unrecoverable error, exit code 1

我该怎么办???? 提前谢谢!

  

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

1 个答案:

答案 0 :(得分:2)

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