浅出Freebsd的Fontconfig

2024-02-07 05:32
文章标签 freebsd fontconfig 浅出

本文主要是介绍浅出Freebsd的Fontconfig,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

浅出Freebsd的Fontconfig
2009-03-17 16:03
http://hi.baidu.com/feierwh/blog/item/2547f927a63bde0b908f9d2d.html
类Unix系统桌面环境关于字体的底层支持,目前的桌面应用程序主要是通过Fontconfig,Freetype2+Xft来组合实现字库的匹配、读取和渲染,最终显示在屏幕上。大致的功能模块划分是:

  Fontconfig主要的功能是根据应用程序对字体的要求,在字库数据库中尽量匹配一种字体。

  Freetype2 主要的功能是对字库进行操作,根据要求提供具体要显示文字的数据信息,它也提供一些字体的渲染,但是在这种集成解决方案中,只需要它的主要功能。

  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 只扫描系统定义的字库目录

-v,--verbose 显示程序运行状态信息

-V,--Version 显示版本

-?,--help 显示帮助

  2、fc-list

  用途:显示系统安装字库的列表,字体名称格式是 字体名-尺寸大小:属性[=值]

  3、fc-match

  用途:显示目前系统字体匹配情况,带—help参数可以获取帮助,也可以查看man手册。

  三、Fontconfig的运行原理:

  X应用程序打开文件——〉提取文件中的,或者是应用程序定义的字体属性,形成字体样板——〉传递给Fontconfig进行处理——〉 Fontconfig根据自定义的fonts.conf中定义的匹配规则,对传递过来的字体样板进行分析、处理——〉填补fonts.conf中没有定义的属性匹配——〉形成标准化的字体样板——〉返回给X应用程序。

  返回给X应用程序的字体样板已经包括具体的字体,以及字体信息,以及一些字体的渲染选项,X应用程序根据这个样板,提取相应的字库文件,进行后续的操作。

  一个简单的例子:系统中安装了微软的宋体字库,在浏览器中没有确切要求使用这个字体时,访问一个中文网页,也可以正常显示中文汉字。从原理上可以认为,Fontconfi参与了字体的选择,当打开的网页中包含有GB编码信息时,Fontsconfig根据匹配规则,自动选择了中文字库来进行显示。

  知道了以上的Fontconfig的运作原理,就可以很容易理解Fontconfig中fonts.conf所定义的匹配规则了。 Fonts.conf文件无非是定义怎样根据应用程序的要求匹配一个字体,可以定义匹配模式,也可以针对某个字体进行匹配,用“Test”标签来查找匹配属性,用“Edit”标签进行修改,甚至可以定义是否进行微调和液晶屏显示优化等等。

这篇关于浅出Freebsd的Fontconfig的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/686642

相关文章

大型企业网络DHCP服务器配置安装实践@FreeBSD

企业需求 需要为企业里的机器配置一台DHCP服务器。因为光猫提供DHCP服务的能力很差,多机器dhcp+多机器NAT拓扑方式机器一多就卡顿。使用一台路由器来进行子网络的dhcp和NAT服务,分担光猫负载,但是还有一部分机器需要放到光猫网络,这就需要再安装一台DHCP服务器。 技术选型 经过深思熟虑,这次我们选择使用isc-dhcp-server isc-dhcp-server介绍 isc

FreeBSD服务器监控:核心指标解读与应用建议(Telnet)

随着企业IT环境的日益复杂,对服务器性能和稳定性的监控变得至关重要。特别是针对FreeBSD这类广泛应用的服务器操作系统,进行高效的监控和管理更是运维团队的核心任务。本文将针对监控易中FreeBSD服务器的核心监控指标进行解读,并提供相应的应用建议,帮助运维团队更好地掌握和管理FreeBSD服务器的运行状态。 一、CPU监控     CPU是服务器的核心部件,其性能直接影响到整个系统的

FreeBSD在zfs挂接第二块ssd 硬盘

为FreeBSD机器新增加了一块ssd硬盘:骑尘 256G 先格式化分区硬盘 进入bsdconfig 选Disk Management 选择ada1 ,也就是新增加的硬盘 选择auto 然后选择Entire Disk  提示信息                         The existing partition scheme on this disk (MBR)  │

Fontconfig head is null, check your fonts or fonts configuration问题解决

报错信息: Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [R equest processing failed: com.alibaba.excel.exception.ExcelGenerateException: java.lang.InternalError

FreeBSD通过CBSD管理低资源容器jail来安装Ubuntu子系统实践

简介 FreeBSD、CBSD、Jail和Ubuntu,四者的组合方案可以说是强强联合,极具性价比和竞争力!同时安装简单方便,整体方案非常先进。 CBSD是为FreeBSD jail子系统、bhyve、QEMU/NVMM和Xen编写的管理层。该项目定位为一个综合解决方案的单一集成工具,用于使用预定义的软件集以最少的配置快速构建和部署计算机虚拟环境。 FreeBSD jail系统容器本身是

FreeBSD jail虚拟容器里装ubuntu系统没有apt命令怎么办?

问题 在FreeBSD jail里使用linux兼容创建了ubuntu环境,但是没有apt命令,该怎么办呢? jail的介绍:FreeBSD jail 容器手册_freebsd虚拟化-CSDN博客 系统是这样进去的: jexec focal chroot /compat/ubuntu /bin/bash 这个问题很少碰到,大约只有两种情况会碰到:1 FreeBSD jail虚拟容器里装ub

freebsd 14.1 简易安全安装步骤

下面安装在真机上进行,安装的是KDE界面,virtual box虚拟机上安装,安装前设置中显示改为VBoxSVGA,缩放设置为150%要不然安装后界面文字非常小看不见,其他基本一样。 总结出来的简易安全快速安装步骤方法: freebsd 14.1 简易安全安装步骤 1.下载ISO刻录到优盘,刻录工具rufus 4.5p 2.拔掉网线安装,完成后登录启用pf防火墙: vi /etc/rc.con

FontConfig在windows和VS2013下编译

欢迎关注公众号可以查看更多完整文章   下载地址:https://github.com/xdd1990/fontconfig-master 下载后,解压,里面有VS2013的解决方案,打开即可编译。

一台FreeBSD笔记本突然鼠标乱动=>pf防火墙设置@FreeBSD

缘起 一台FreeBSD的笔记本,突然鼠标乱动 思考了下,可能原因有三: 1 无线鼠标干扰 正巧没带鼠标,但是插着无线鼠标usb,不知道是不是别人的鼠标跟这个usb串台了。 2 触摸板机械故障 也许是天热触摸板开始有故障了? 但是怎么发作的这么突然呢? 又为什么突然好了?  3 非法入侵 是不是别人入侵了呢?  FreeBSD被别人入侵,会看到鼠标在屏幕上乱动吗? 文心说不太会,

T-Pot多功能蜜罐实践@debian12@FreeBSD

T-Pot介绍 T-Pot是一个集所有功能于一身的、可选择分布式的多构架(amd64,arm64)蜜罐平台,支持20多个蜜罐和很多可视化选项,使用弹性堆栈、动画实时攻击地图和许多安全工具来进一步改善欺骗体验。GitHub - telekom-security/tpotce: 🍯 T-Pot - The All In One Multi Honeypot Platform 🐝 可能是当前更新