计算机内最基本的图像表示方法,就是记录图像中每一个像素的值。可以是色彩值,也可以是灰度值,或者其他的值。但是都是用每个像素一个或者一组值来表示图像的。一般称之为位图。
不同格式的图像无非是对这种数据进行了压缩等等处理。矢量图也一样,最终可以转化为这种位图。
而文字的表示略微复杂。首先,你要给每一个文字一个特别的编码。比如Unicode。系统遇到这个编码的时候,就会到你设定好的字体里面去找。每个字体都有至少一个码表。他记录了一种映射关系。比如一个Unicode码,它对应这个字体里面第几个字形。这是一种字形索引。找到字形了以后,就可以根据这个形状去画字了。
不同的字体,其记录字形的方式也有不同。有的是用点阵,可以当成一张张小图片。有的使用样条曲线,就是用数学函数勾画出每个字的形状。不过不管是哪种,最后都可以画成位图。
这整个过程比较复杂,前面说的已经简化了很多。你可以用一个字体渲染引擎来代替你做这些工作。比如FreeType。这是个用C语言编写的开源字体渲染引擎。性能很高。而且基于模块化设计,你可以不编译用不到的模块以节省空间提高性能。你看到那些游戏里面的文字基本都是这么做出来的。
根据指定好的字体,字号等等参数,字体渲染引擎可以生成一个记录字形的数组,也可以直接生成位图。你根据这个数组或者位图画到你的图像上就可以了
链接地址:www.xinacg.com