字体引擎freetype移植过程

由于工作项目中的字体实现方案很不好用,所以一直有修改的想法,拖了很久,直到最近才把freetype字体引擎移植过来用。下面记录了自己移植过程和遇到的一下问题。

一,裁剪freetype库

freetype非常强大,支持很多格式的字体,整个库如果全部编译会很大,可以根据自己的需要来裁剪freetype库。首先找到<ftoption.h>、<ftmoudule.h>,在这ftoption.h文件中打开关闭一些宏;在ftmoudule.h中自定义选择自己要用到的模块,删减不必要模块,这样编译出来的库会小很多(一开始自己是通过在源代码中删除文件来达到删除模块的目的,其实没必要这样做,直接在ftmoudle.h里面屏蔽相应的宏就行了)。详细参考freetype源码中的docs文件夹中的CUSTOMIZE和INSTALL.ANY。

二,freetype实际应用

1,face的两种打开方式

a,FT_New_Face

直接通过给定字体文件路径创建face。需要给定跟开发平台相关的文件操作函数。

b,FT_New_Memory_Face

使用时,要先把字体文件加载到内存,然后再通过freetype库中的FT_New_Memory_Face来打开face。不需要在freetype库中给定文件操作函数。由于在我的开发平台中,文件操作不是常规的文件操作(read,fread),而是比较特殊文件系统的操作,使用方法不太一样,不能简单地通过直接修改ftstdlib.h中文件操作的宏来解决,要到ftsystem.c修改函数来解决,很麻烦。而使用FT_New_Memory_Face,freetype库就不需要关心怎么打开和使用字体文件,即不需要把平台相关的文件操作耦合到freetype库中。

2,freetype的两种使用方式

a,不使用cache

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值