字符(Character)是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集名称:ASCII 字符集、GB2312 字符集、BIG5 字符集、 GB18030 字符集、Unicode 字符集等。
计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。例如:GB2312字符集采用的是区码+位码,Unicode字符集采用的是 UTF-8 或 UTF-16 等。
字体,又称书体,是指文字的风格式样。矢量字体(Vector font)中每一个字形是通过数学曲线来描述的,它包含了字形边界上的关键点,连线的导数信息等,字体的渲染引擎通过读取这些数学矢量,然后进行一定的数学运算来进行渲染。这类字体的优点是字体实际尺寸可以任意缩放而不变形、变色。矢量字体主要包括 Type1 、 TrueType、OpenType 等几类。对于 Windows 系统,可以在 C:\Windows\Fonts 目录下查看当前系统支持的字体。
在每一个矢量字体(TrueType)文件中都会含有“字符映射表”,用来查看所选字体中可用的字符,而且如果该字体支持多种字符集,那么每个字符集都会对应一个字符映射表。通常字体文件都会支持 Unicode 字符集。外部应用程序就是通过字符映射表找到字符的字形轮廓(通常称为 glyph),然后通过某些数学函数描画出来。
例如:对于 simkai.ttf 字体文件,里面可以找到 Unicode 字符集的映射表,且“中”字对于的 Unicdoe 码为 4E2D。
对于 simkai.ttf 字体文件,它还支持 GB2312 字符集,且“中”字对应的国标码为 D6D0。
FreeType 库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括 TrueType、OpenType、 Type1、CID、CFF、Windows FON/FNT、X11 PCF 等。支持单色位图、反走样位图的渲染。
交叉编译 FreeType 库:
# tar xjf freetype-2.4.10.tar.bz2
# ./configure --host=arm-linux
# make
# make DESTDIR=$PWD/tmp install
编译出来的头文件应该放入:
/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include
编译出来的库文件应该放入:
/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib
——忠于梦想 勇于实践 linux_xpj@opencores.org
阅读(2252) | 评论(0) | 转发(0) |