歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> BSD >> 淺出Freebsd的Fontconfig

淺出Freebsd的Fontconfig

日期:2017/2/28 11:23:30   编辑:BSD


  類Unix系統桌面環境關於字體的底層支持,目前的桌面應用程序主要是通過Fontconfig,Freetype2+Xft來組合實現字庫的匹配、讀取和渲染,最終顯示在屏幕上。大致的功能模塊劃分是:
  Fontconfig主要的功能是根據應用程序對字體的要求,在字庫數據庫中盡量匹配一種字體。
  Freetype2 主要的功能是對字庫進行操作,根據要求提供具體要顯示文字的數據信息,它也提供一些字體的渲染,但是在這種集成解決方案中,只需要它的主要功能。
  Xft 是X11 server提供的一套函數庫,主要是用來對需要現實的文字進行最終的繪制處理,包括對TTF等字體美化,渲染。
  最終文字的繪制是由具體的桌面環境庫來提供的,這不在本文討論范圍之內。
  隨著這三個模塊的各自的發展,分工協作,使得目前X應用程序文字顯示支持越來越成熟。在這三個模塊當中,對漢字顯示來說,我覺得了解Fontconfig的運作機制非常重要,因為Fontconfig決定著字庫的選擇,而這對於最終在屏幕上顯示什麼樣的漢字尤為重要。
  一、Fontconfig按照主頁上的介紹,主要是由兩個模塊構成:
  (一)在FreeBSD系統中,與用戶級配置有關的有如下幾個文件:
  這個文件是針對用戶的字體匹配規則文件,作用范圍是所在home的用戶,這個文件提供了當前用戶的字體配置信息,與之相關的是“字體安裝目錄”,系統默認的目錄是“ ~/.fonts ”,對用戶來說,只要把需要的字體文件拷貝到這個目錄中,就可以在系統中使用了,關於安裝字庫的配置由Fontconfig自動完成。具體的原理簡單的說,就是Fontconfig每隔30秒,會對定義的字體安裝目錄進行一次掃描,自動地分析字庫,並把字庫納入到系統安裝字庫當中。
  2、/usr/X11R6/etc/fonts 目錄下的幾個文件
  /usr/X11R6/etc/fonts/fonts.dtd
  /usr/X11R6/etc/fonts/conf.d 目錄
  (二)工具程序(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應用程序的字體樣板已經包括具體的字體,以及字體信息,以及一些字體的渲染選項,X應用程序根據這個樣板,提取相應的字庫文件,進行後續的操作。
  一個簡單的例子:系統中安裝了微軟的宋體字庫,在浏覽器中沒有確切要求使用這個字體時,訪問一個中文網頁,也可以正常顯示中文漢字。從原理上可以認為,Fontconfi參與了字體的選擇,當打開的網頁中包含有GB編碼信息時,Fontsconfig根據匹配規則,自動選擇了中文字庫來進行顯示。
Copyright © Linux教程網 All Rights Reserved