TrueType字符字形数据的光栅化

4

我有一个TrueType字体文件中glyf表中字符的字形数据。


这些数据被表示为一块十进制数字。

例如:Calibri 11pt字体中的字符'a'(字形索引258)

0209225523736332020510640176643215663166476631192352121217752161317752241117752161516176521841247641403939150112016151770581842552401791217758184255232179131775818425523217911177581842552321801516176581842864201723197052165225919252105215252466542184127641520834134344292344674612201277404763237632371857479323717185747931139493237147225434343431964394935747162254343434350574948949337206635343838535366353446253526225151535246235341423534462535262451503022173534142212022515054553631628272631145914581711158145621161681051242249785761977349128129472766861025297136843816414168100663189806511161241212661212906370377010265761127437705280532729352981625152529263529194485126841962345634170836668

如何在屏幕上绘制这个字符?


好问题。我进行了快速搜索,但没有找到任何有用的关于这个问题的信息。希望有人在stackoverflow上能够回答这个问题。 - juFo
1个回答

5
简短回答:不要自己尝试。使用字体渲染库,如freetype,或者如果您在已经有字体渲染器的平台上,请使用该平台。还有许多商业渲染库可用。
长答案:将字形数据解码为曲线(加上必要时的指令)的数据规范可以在此处找到here。因此,您可以从那里开始。但是,您需要更多的东西......您还至少需要解析“head”和“hhea”表,以了解如何放置事物并将设计单元缩放到绘图空间中。然后,您需要解析包含“全局”(整个字体范围内)指令(有时称为“提示”)的“fpgm”、“cvt”和“prep”表。接下来,您需要解析每个字形中存在的指令,然后开发填充例程以使用所有这些信息来放置单个像素。祝你好运!这不适合心脏虚弱或寻求快速解决方案的人。使用库。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接