TrueTypeFont文件中符号数据导出与绘制

本文介绍如何利用freetype2库导出TrueTypeFont文件中的符号,并进行绘制。通过Unicode编码处理英文与汉字映射,使用De Casteljau算法处理贝塞尔曲线。程序入口从指定字体文件读取,检查并添加字符到链表,避免重复。
摘要由CSDN通过智能技术生成
 

TrueTypeFont文件作为流行的矢量形式字体文件,其中存储着大量的符号资源。为充分利用资源与达到数据共享目标,现以freetype2源代码为文件读取功能的支撑,导出TrueTypeFont文件中存储的符号并实现绘制。要注意的问题:
1)  英文与汉字映射关系以Unicode编码为准。汉字为双字节,即宽字符。而符号以数字为索引依次读出。
2)  为避免重复和加速,可预先做链表,将新创建的符号填入,以方便再次查询时直接读出。
3)  使用De Casteljau 算法处理贝塞尔(Bezier)曲线。

附参考代码:

程序入口:
      Process()
     {    const char* font_filename = "C:\\Windows\\Fonts\\WINGDNG3.TTF";

         fonts = new FTGLOutlineFont( font_filename );   //矢量轮廓,以文件名称为参数
         const unsigned char* c = (unsigned char*)string;
         while( *c)                                                                               //依次处理字符


         {
             fonts->CheckGlyph(*c);
              ++c;
          }
}
调用的函数:

bool FTFont::CheckGlyph(const unsigned int

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值