|
|
发表于 2006-8-30 19:35:54
|
显示全部楼层
謝謝 quanliking 大大詳細的說明, 另請大大不要潜水吧 ^_^
Post by quanliking
忍不住再纠正一下,希望以后讨论问题要先把讨论的东西搞清楚。
FangQ 兄提到的技术是一种 grayscale antialias 技术,把图片放大了,就可以很明显看到灰阶过渡,从而减少点阵字体尖锐的边缘,适当调整,是可以增加柔和效果,而不失对比度,而且现在 freetype 默认能提供 256 级灰阶。当然这种技术应该不算新技术,应该说我们其实一直在用,特别是英文字体,可能 FangQ 兄的算法要先进一些。
我的水平远低于 FangQ 兄,但我要提几点意见:
首先,点阵没法缩放,你只能使用在某个特定 dpi 下设计的几个固定字号,而且做成成品后改动的余地很小。也就是说它只能够满足部分用户的屏幕阅读需要,但到了设计领域或打印领域,很吃亏。
而矢量字体任意缩放,你可以修改的自由度也更大一些,一个好的字体渲染引擎出来的效果绝对不同。在设计和打印领域会比较占便宜。
当然矢量字体技术现在也远没完善。
其次,FangQ 兄有没有想过在高解析度大屏幕上点阵出来的效果,比如点阵字体的比划通常只有一个像素宽,这个是参与者在画点阵时就设置好的,我想没法改动吧!而高解析度的屏幕,pixel 会很细,也就是说你将会看到一些“排骨”汉字。这时候,如果使用 FangQ 兄提到的技术,增加边缘的灰阶值,我不敢说能有多大的改善,灰阶多了,模糊了,也就和矢量字体没什么区别了。
参考:
http://freetype.sourceforge.net/freetype2/documentation.html
再强调一下,我顶楼讨论的是 cleartype 或称之为 subpixel antialias/color antialias 技术。
我的理解,灰阶技术还停留在单个像素,而 subpixel 技术充分利用 LCD 的物理特性,即一个像素有 R,G,B 三个子像素组成。而该原理对矢量字体渲染将会有很大帮助,当然也不是什么新事物,几十年前就有人想出来了。
具体见:
http://www.grc.com/cleartype.htm
最后谈 hinting:
FangQ 兄把 subpixel antialias 看成是 hinting,我觉得概念搞混了(失礼了)。
既然说到 hinting,楼上很多人都是各说各的话。
hinting 好多种!广义的看,grayscale antialias 和 subpixel antialias 都可以算是 hinting。
狭义的看,hinting 不是 subpixel antialias,不开 antialias,照样可以使用 hinting。更明白的说,这是两种技术,但很多时候会结合在一块使用。
hinting 又叫 grid-fitting,分为
explicit grid-fitting,
implicit grid-fitting (also called hinting)
automatic grid-fitting
前两种分别为 truetype 和 type1 所使用,可能会涉及到部分 Apple 专利。
但最后一种的速度使用的算法有很大关系,不涉及专利。
我想 FangQ 兄说的 hinting struction 应该指的是第一种。
具体见:
http://freetype.sourceforge.net/ ... hs-2.html#section-3
说到这里,我还要声明一点,不管点阵也好,矢量也好,如果有新技术突破,能带来很好的显示效果,我没理由不同意。
我们讨论一样东西,一开始不要带太多的个人主观色彩(当然我也经常犯),还没开始讨论,就被扼杀在摇篮之中,是不对的。 |
|