浅出Freebsd的Fontconfig
2009-05-13 05:11:09来源:未知 阅读 ()
浅出 Fontconfig
类Unix系统桌面环境关于字体的底层支持,目前的桌面应用程序主要是通过Fontconfig,Freetype2+Xft来组合实现字库的匹配、读取和渲染,最终显示在屏幕上。大致的功能模块划分是:
l Fontconfig主要的功能是根据应用程序对字体的要求,在字库数据库中尽量匹配一种字体。
l Freetype2 主要的功能是对字库进行操作,根据要求提供具体要显示文字的数据信息,它也提供一些字体的渲染,但是在这种集成解决方案中,只需要它的主要功能。
l Xft 是X11 server提供的一套函数库,主要是用来对需要现实的文字进行最终的绘制处理,包括对TTF等字体美化,渲染。
最终文字的绘制是由具体的桌面环境库来提供的,这不在本文讨论范围之内。
随着这三个模块的各自的发展,分工协作,使得目前X应用程序文字显示支持越来越成熟。在这三个模块当中,对汉字显示来说,我觉得了解Fontconfig的运作机制非常重要,因为Fontconfig决定着字库的选择,而这对于最终在屏幕上显示什么样的汉字尤为重要。
一、Fontconfig按照主页上的介绍,主要是由两个模块构成:
1、 配置模块:主要的作用根据fonts.conf文件的内容,建立匹配规则
2、 匹配模块:把应用程序传递过来的“字体样板”,与fonts.conf文件中约定的匹配规则进行匹配运算,根据系统安装的字体,找到一种最匹配的字体,并把字体的名字,各种属性传递给后续的“字库操作”。
二、Fontconfig提供了一些工具程序和若干fonts.conf 配置文件来实现用户级的操作和
定制匹配规则。
(一)在FreeBSD系统中,与用户级配置有关的有如下几个文件:
1、~/.fonts.conf
这个文件是针对用户的字体匹配规则文件,作用范围是所在home的用户,这个文件提供了当前用户的字体配置信息,与之相关的是“字体安装目录”,系统默认的目录是“ ~/.fonts ”,对用户来说,只要把需要的字体文件拷贝到这个目录中,就可以在系统中使用了,关于安装字库的配置由Fontconfig自动完成。具体的原理简单的说,就是Fontconfig每隔30秒,会对定义的字体安装目录进行一次扫描,自动地分析字库,并把字库纳入到系统安装字库当中。
2、/usr/X11R6/etc/fonts 目录下的几个文件
/usr/X11R6/etc/fonts/fonts.conf / fonts.conf.default
这两个文件安装时,内容一样,而且建议用户不要对其进行更改,如果要对Fontsconfig的运行环境进行更改的话,比如修改“字库存放目录”,“字体缓存刷新时间”等等,建议修改fonts.conf。
/usr/X11R6/etc/fonts/fonts.dtd
这是xml的fonts.conf 匹配规则的数据类型定义文件,提供可操作字体属性的定义。
/usr/X11R6/etc/fonts/conf.d 目录
其中包含一些对字体具体操作的配置文件,可以包含在fonts.conf 文件中。
(二)工具程序(fc-cache,fc-list,fc-match)
1、fc-cache
用途:建立指定字体目录的字体信息缓存,生成 .fonts.cache-1这样的文件
用法:fc-cache [-fsvV?] 目录名
-f,--force 强制进行目录扫描,建立缓存文件
-s,--system-only 只扫描系统定义的字库目录
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:DNS配置
- ACL 疑问 2009-05-13
- 声卡好使了,庆贺一下。 2009-05-13
- 选择FreeBSD的中文编码 2009-05-13
- 见笑了,问一个很简单的问题 2009-05-13
- 在windows下 grub4dos硬盘安装 不解开iso 就差一步啊 2009-05-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash