2009年5月26日星期二

字体渲染学问也不小

早上来上班就发现我的windows域账户不能用了,凡是跟域相关的资源都无法访问,比如邮件、内部网的一些文件服务器之类。难道是IM部门在处理离职人员的帐号时误把我的帐户给删除了?今天网管也不在办公室,只能等明天他来了再解决。

没了outlook用,很多事情也干不了,所以整个上午就在网上看FreeType 2的文档。FreeType2是个开源的跨平台字体渲染库,支持点阵和矢量字体,应用很广泛,比如各种版本的Linux,形形色色的嵌入式系统等。

上学时曾做过一个简单的dos下用汇编显示点阵汉字的课程设计,因此以前就没把字体的渲染想得有多麻烦,以为点阵字体嘛,就直接按点阵绘制,矢量字体嘛,就根据相关信息计算一下再生成位图就行了…… 后来这方面了解得多了,就发现字体渲染远远没有我之前想象得那么简单,拿西文字体来说吧,为了排版的美观和易读性,在渲染的字体较小时,比如只有十几个像素的高度,就要考虑到hinting,像“AHE”,在某些字母组合出现时,还要考虑kerning,比如“Yes”这个单词…… 中文方面,不用考虑kerning,但字体较小时,hinting的效果也是不可忽视的,否则渲染出的文字人眼看起来较为模糊。Apple在矢量字体的hinting方面有专利,如果产品中用到这个技术就要向Apple购买许可,因此FreeType开源社区针对西文字体开发出了auto hinting,效果也很好,但对中文字体就无能为力了。

FreeType使用简介 -- 《FreeType Glyph Conventions》: http://freetype.sourceforge.net/freetype2/docs/glyphs/index.html

没有评论: