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