首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C语言中的TrueType字体解析

C语言中的TrueType字体解析
EN

Stack Overflow用户
提问于 2010-07-05 21:07:59
回答 4查看 11.5K关注 0票数 10

我想读取一个ttf,并在缓冲区中绘制一个带有该字体的文本。即使有诸如freetype,gd这样的库来完成这项任务,我还是想写我自己的代码。你能建议我如何完成这项任务吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-07-05 22:15:54

除非您是字体、排版和书写系统方面的世界顶级专家之一,否则答案很简单:不要使用。TrueType/OpenType有很多需要支持才能正确呈现的表,甚至在使用FreeType (这是一个非常低级的库)时,大多数人都会搞错。

如果你需要做低级的、跨平台的确定性字体处理,那么至少你应该使用FreeType和libotf。这将为您提供对字形和轮廓的访问,然后您可以随心所欲地呈现它们。不过,在大多数情况下,使用GUI系统的文本呈现例程要容易得多,也不容易出错。

最后,如果你坚持忽略我的建议,在FreeType上有一个很好的RTFS和微软的在线资源来解释TrueType/OpenType字体的表格可能是最好的开始。

票数 10
EN

Stack Overflow用户

发布于 2014-08-06 12:39:19

我建议你

  1. 阅读你能找到的所有TTF文档
  2. 找到你能找到的所有开源TTF解析器+渲染器,有很多不同的语言,比如Freetype (c/c++),Batik (java),以及任何你可以在谷歌上搜索到的东西。此外,乔治·威廉姆斯的fontforge可能会在你的旅程中对你非常有帮助。
  3. 撕开你在1中收集的所有程序,看看它们是如何工作的。看看你是否能做一个很小的例子程序来做一些简单的事情,比如转储字母“i”的轮廓的点的列表。
  4. 在你的光栅化上工作。从非常简单的东西开始,比如对字母"l“进行光栅化。

TTF的问题是没有一种简单的文件格式,而freetype为你处理了很多疯狂的细节。但是,如果你不关心可移植性,并且你已经有了一个想要呈现的特定的TTF文件,并且你只关心一个小的简单的字母表,比如拉丁语或西里尔字母,你可能还可以。

此外,您可能还想查看我从我的小项目https://github.com/donbright/font_to_svg/链接到的TTF文档列表。

票数 4
EN

Stack Overflow用户

发布于 2010-07-05 22:33:44

作为R..。就像我在评论中写的一样,我不会建议你自己构建另一个TTF解析器。如果你渴望学习计算机科学这个非常"spannende“的领域,我推荐Donald E.Knuth的”计算机编程的艺术“第二卷。(它是Metafont,不是TTF,但已被证明是正确的:-)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3179685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档