现在的位置: 首页 > 综合 > 正文

[转] Linux 下字体显示原理的一个较详细的解释

2014年01月10日 ⁄ 综合 ⁄ 共 1196字 ⁄ 字号 评论关闭

原文地址:http://www.linuxforum.net/forum/gshowflat.php?Cat=&Board=chinese&Number=405450&page=0&view=collapsed&sb=5&o=all&fpart

X Window是所谓client-server结构,这里的server管显示(输出)、键盘和
鼠标(输入)部分,而client则是你正在用的程序,比如编辑器。Server收集
键盘和鼠标的输入,送到编辑器这一client,编辑器经过处理后,回过来再让
server去显示一些字到屏幕上,来回折腾。

怎样显示一个字呢?

一个字实际上就是一个小图,如果小图上的点非黑即白,就称为黑白点阵;
如果小图上的点可以有不同的亮度甚至颜色,则称为AA点阵。每个字,也就
是每个小图都有固定的编号,编辑器(client)可以只告诉server某个编号,
server根据该编号去找出对应的小图,这种方案就是所谓的server side
font,如FreeType,X-TrueType等backend就属此类;如果编辑器自己去找小
图,干脆把小图送给server去显示,这种方案就是所谓client side font,
Xft属这一类。
  server side font
    FreeType backend: 即XF86Config中的freetype模块
    X-TrueType backend: 即XF86Config中的xtt模块
  client side font
    Xft: 设置文件是fonts.conf

还有一类,xfs,跟server side font一样,client把字编码传给server,但
server并不直接从字库中读出对应该编码的小图,而是把编码再传给另外
的所谓font server,由font server去字库找出对应的图,返回给X server
去显示,姑且将这种方式称为font server font:
  font server font
    xfs: 设置文件是X11/fs/config

不管是哪一类,最终都要去字库文件读出对应编码的小图,至少对TrueType
格式的字库文件而言,xtt也好,freetype也好,Xft也好,几乎都用到了
FreeType这一字库engine,虽然xtt没人继续改进,还是用FreeType 1,别人
都改用FreeType 2了。正因为大家都用FreeType字库engine,使得xtt,
freetype,Xft这些名字容易弄混,让人头大。解决的办法很简单:不要再去
管什么xtt,不要再去管什么freetype,不要再去管什么xfs:
  只要弄清Xft就够了。

X字库设置必读: Juliusz Chroboczek的Fonts in XFree86
  http://www.xfree86.org/~dawes/4.3.0/fonts.html  

抱歉!评论已关闭.