qakcn
学生会会长
学生会会长
  • 注册日期2008-10-31
  • 最后登录2021-01-05
  • 生日1988-8-18
  • 光玉3394颗
阅读:1263回复:3

科普第16篇——字体(下)

楼主#
更多 发布于:2011-06-25 15:22
终于要来讲一讲计算机里的字体了。

点阵字体(Bitmap Fonts)
最早的计算机字体都是点阵字体,字体里每个字的图像其实是像位图一样由一个一个的像素组成的。这样有一个很明显的问题——经过放大之后的字体效果非常糟糕(想象一下一把图片放大100倍的效果)。早期都是字符型的用户界面(CLI),显示的字体大小都是统一的还没什么。但是到了图形用户界面(GUI),缺点和不足就暴露出来了。
常见的点整字体格式有bdf、pcf、fnt、hbf等。如下图所示的Windows自带的System字体就是一种点阵字体。
[IMG]http://p.dmdjz.com/uploads/2011/06/font-1.jpg[/IMG]

轮廓字体(Outline Fonts)
点阵字体既然不能随意的设置字号,那么自然就有新的字体被开发出来了——这就是轮廓字体。轮廓字体中记录的是矢量信息。“矢量”这一名词在计算机图形里是指,记录的是点的位置和路径的信息,而最终显示出来的效果是由程序根据这些信息渲染出来的(也就是说最终展现在屏幕上的还是位图图像,只不过不是实现保存好的图像,而是即时渲染的)。轮廓字体中记录的就是矢量信息,所以最终的显示效果要由程序来渲染出来。因此轮廓字体的缺点也是很明显的——不同程序渲染出的效果可能会有很大的差异。这也是为什么6.02版之前的微软雅黑字体放到XP下很难看、在Linux下很漂亮的文泉驿正黑在WIndows中很糟糕的原因。

常见的轮廓字体有Adobe开发的PostScript、微软和苹果开发的TrueType,以及微软和Adobe开发的OpenType。

PostScript
本质上并不是一种字体格式,而是Adobe开发的一种数字排版语言。但是可以用来描述字体信息,所以早期Adobe就是靠这个的授权来赚钱的。不过后来TrueType的兴起,这种格式逐渐没落了。现在大家已经很少见到这种字体了。扩展名是ps。

TrueType
这是目前最常见的字体,是苹果和微软不满Adobe高昂的授权费而联手(不过主要还是苹果在做相关工作)开发的。现在Windows中标配的字体就是TrueType格式的,不少Linux发行版也使用这种格式的字体。扩展名为ttf、ttc等。

OpenType
准确地说这并不是一种字体描述,而仅仅是一种封装,封装的可以是PostScript格式,也可以是TrueType格式,甚至是两者的合体。所以上面说的TrueType格式字体,大家见得更多的还是这种封装的。当然并不是说OpenType一点新东西都没有,实际上OpenType的很多新特性还是十分有意义的,比如使用了Unicode来编码字符,所以大家使用字体时不用担心换一种字体就会乱码。还有像阿拉伯文字体,可以出现连笔的效果(就是同一个字符在和其他不同的字符组合时会产生不同的字形)。扩展名为otf。
下面是微软雅黑字体,可以看到第三行信息里写着“OpenType Layout”、“TrueType Outlines”。
[IMG]http://p.dmdjz.com/uploads/2011/06/font-2.jpg[/IMG]

事实上任何一种矢量图形都可以用来描述字体——事实上也正有人这么做,比如Firefox就支持SVG描述的字体,PDF格式的字体见过没?

做网页的都知道,字体是很让人头痛的东西,设计时使用了某个字体,如果别人的电脑里没有,那么就达不到所要的效果。为此不得不放弃使用特别的字体,或者把文字弄成图片。
不过随着HTML5的到来,字体的问题将会得到解决。WOFF现在已经得到了大多数现代浏览器(Firefox、Chrome、IE9、Opera等)。WOFF本质上还是OpenType字体,不过一些新的特性使得它更适合在网页上使用。


字体族(Font Family)
说到字体就不得不讲讲粗体和斜体。粗体和斜体想必不用解释了,但是这些样式是从哪里来的呢?实际上,有的字体提供了粗体和斜体的单独字体(比如“微软雅黑 粗体”)。有的没有提供的,就要靠计算机根据一套规则来生成了。但是计算机生成的效果可能不是十分理想,所以还是有不少字体提供额外的字体。这些字体共同属于一个“字体族”,我们引用字体时只要说明字体族就行了,计算机会根据我们设置的样式自动调用同一个字体族下的不同字体。我们在Word等软件里选字体的时候选择的也是“字体族”。
下面的是Calibri这个字体族下的不同字体:
[IMG]http://p.dmdjz.com/uploads/2011/06/font-3.jpg[/IMG]


==========之前的文章==========
科普第1篇——计算机色彩
科普第1篇补遗——CSS颜色
科普第2篇——光盘
科普第3篇——2、8、10、16
科普第4篇——电池
科普第5篇——浏览器
科普第6篇——字符编码
科普第7篇——加密解密
科普第8篇——移动通信技术
科普第9篇——为什么32位CPU不能支持大于4GB内存?
科普第10篇——智能手机简介
科普第11篇——14.52-14.49=0.0299999?
科普第12篇——为什么HTTPS会更安全?
科普第13篇——计算机语言
科普第14篇——字体(上)
科普第15篇——字体(中)

科普番外篇1——虽然没用但了解一下也很有趣的知识
喜欢0 评分0
琥珀
光坂硕士生
光坂硕士生
  • 注册日期2009-06-07
  • 最后登录2020-12-09
  • 生日1989-12-26
  • 光玉6903颗
沙发#
发布于:2011-06-25 18:12
原来如此,我高中的时候学到2个字节才能储存一个中文字,但是却不知道储存的什么样的数据,

这么一解释就明白多了
回复(0) 喜欢(0)     评分
梦幻的夏
光坂学士生
光坂学士生
  • 注册日期2008-10-29
  • 最后登录2014-08-21
  • 生日1986-4-15
  • 光玉3005颗
2楼#
发布于:2011-06-26 08:35
原来如此,我说怎么安装字体时有的是TrueType,而有的是OpenType。
回复(0) 喜欢(0)     评分
红绯鱼
光坂硕士生
光坂硕士生
  • 注册日期2011-03-13
  • 最后登录2023-07-19
  • 生日1991-2-11
  • 光玉7105颗
3楼#
发布于:2011-06-26 21:31
= =我就是在电脑里放了一种很好看的字体。结果只能自己看到,知道后郁闷了n久= =
回复(0) 喜欢(0)     评分
游客

返回顶部