字体文件格式_分析freetype开源库

 

做个简单的总结,最近缺少激情和动力。做事要顺其自然,顺势而发,做必要的,干这些也如此。
先总结freetype的框架
然后就是truetype的一些数据。
========================================
感觉这些东西都需要慢慢一步步的积累,一下子的话走不远。

先总结freetype的框架吧。freetype用C实现面向对象,简单的分析后,觉得整个库做得简单,实用,没有太多累赘,顺其自然,没有太多刻意的封装,累赘的接口调用,用起来方便,看起来舒心!


 freetype设计得比较好的有几个模块。
stream,system, module,library, face

1,library管理着多个module,(sfnt,type1,src文件夹下除了base之外的其他模块。)
2,module管理着各个模块分析文件的接口部分。例如 sfnt_interface;可以load_loca,load_cmap,lookup_table,goto_table;等。
3,stream,system封装一系列底层相关的api,而上层提供的stream给module的接口做分析用。
4,FT_Face,TT_Face,TT_Face 是FT_Face的封装,给内部用的,外部用户只有FT_Face,而TT_Face则可以做分析数据用。在中间这层转换做隔离封装用。
-----------------------------------------------------------------------

至于TrueType的文件格式分析:
1,注意truetype文件是以大端序存储的字节序,读取数据时要做转换。
2,最恍然大悟的是分析了cmap表,字符编码本质就是给映射用的。最终还是流到图元指令集。其实如果字体支持gbk编码的话,可以不做unicode转换也能够显示。不过貌似绘图API只支持unicode的。format0存储的是 ansii表的图元索引映射,format4存储的是unicode区段的图元索引映射。format4 idRan
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值