栅格化TrueType字符字形数据

Jon*_*euw 3 fonts rendering glyph raster truetype

我在TrueType字体文件中有一个来自glyf表的字符的字形数据.
该数据表示为十进制数块.

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

0209225523736332020510640176643215663166476631192352121217752161317752241117752161516176521841247641403939150112016151770581842552401791217758184255232179131775818425523217911177581842552321801516176581842864201723197052165225919252105215252466542184127641520834134344292344674612201277404763237632371857479323717185747931139493237147225434343431964394935747162254343434350574948949337206635343838535366353446253526225151535246235341423534462535262451503022173534142212022515054553631628272631145914581711158145621161681051242249785761977349128129472766861025297136843816414168100663189806511161241212661212906370377010265761127437705280532729352981625152529263529194485126841962345634170836668
Run Code Online (Sandbox Code Playgroud)

在屏幕上绘制这个角色的可能性有多大?

dja*_*ude 5

简短的回答:不要自己这样做.使用字体渲染库(如freetype),或者如果您位于已具有字体渲染器的平台上,请使用该字体.还有许多商业渲染库可供使用.

答案很长:可以在此处找到用于将字形数据解码为曲线(加上,可选地,指令)的数据规范.所以你可以从那开始.但是你需要更多,更多...你也最不需要解析'head'和'hhea'表来知道放置东西的位置以及如何将设计单元缩放到绘图空间中.然后你需要解析包含"全局"(字体范围)指令(有时称为"提示")的'fpgm','cvt'和'prep'表.然后,您需要解析每个字形中存在的指令,然后开发填充例程以使用所有这些信息来放置单个像素.祝好运!这不适合胆小的人,也不适合那些寻求快速解决方案的人.使用图书馆.