`
java2000.net
  • 浏览: 649931 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

关于字体和字体微调(Hinting )的知识

阅读更多

点阵字体与矢量字体点阵字体也叫位图字体,其中每个字形都以一组二维像素 信息表示。由于位图的原故,点阵字体很难进行缩放,特定的点阵字体只能清晰地显示在相应的字号下。但对于 12-16px 这样小的汉字,点阵字体常常比其它类型的字体在屏幕上更好的显示效果。常见的点阵字体有 bdf,pcf,fnt,hbf 等格式。

对于常见的计算机操作系统,字体的显示算法需要一些字体的信息来优化屏幕显示效果,英文称为Hinting。汉字由于笔画复杂,所以 hinting 的方式与西文截然不同。使用在汉字字体中嵌入预先制作的点阵位图既可以有效地避免hinting 算法带来的计算开销,同时屏幕上显示的汉字边缘清晰,易于阅读。

矢量字体中每一个字形是通过数学曲线来描述的,它包含了字形边界上的关键点,连线的导数信息等,字体的渲染引擎通过读取这些数学矢量,然后进行一定的数学运算来进行渲染。这类字体的好处是字体可以无限放大而不产生变形。矢量字体主要包括 Type1 和 TrueType 等几类。

内嵌点阵字的字体由于CJK字体的结构复杂,在小号字体只有使用点阵才能有清晰的显示效果,但是点阵字体很难进行缩,而且线条单一,在大号字体显示时就显得苍白无力。把点阵字体内嵌到矢量字体就能发挥两者的优点,并且也弥补了两者的不足。小号字体时清晰明朗,大号字体时字型饱满,形态丰富。常见的内嵌点阵字的字体有:北京中易电子公司宋体SimSun 、方正宋体(FZSongti)、文鼎PL上海宋(Uming)、Firefly的文鼎PL新宋(AR PL New Sung)等。

Hinting 与 AutohintHinting 用来最佳化字型显示的方法。由于屏幕的像素有限,向量字型的缩放需要有更多的考虑, 例如当一条线位在两个像素格子中间时, 该取左边的格子还是右边的格子? 如果这方面的控制没有做好,就常常会出现字型的衬线没有对齐,或是小字歪七扭八的情况。Hinting 是额外的信息, 它告诉 renderer 该如何处理这些细节的部份,使得向量字在小字的时候能够好看。也因此 Hinting 是非常费时费人力的工作,TrueType字型很多,但是有良好 Hinting 的字型不多。拙劣的 Hinting 就会让字变得很难看。 为了稍微改善这个问题,freetype 有 autohint 的功能,可以自动为没有hint 的字型做 hinting 的工作。另外由于 TrueType 的 hinting 是有专利的,不能完全自由地使用autohint 就不受这个限制。autohint 自然无法做得像人力的 hint 一样好,不过至少比没有 hint 要好些。话虽如此,对于许多笔划复杂的文字 (如中文) 目前 freetype 的 autohint 还做得不甚完美,而因为建立完整的 hinting 的难度,即使是英文字,原本就很高,内建有 hinting 的中文字型就少之又少了。所以常常有人抱怨中文字在屏幕上很难看,就是没有理想hinting, 或者是使用了 autohinter 所造成的一些反效果。

AA(Anti-aliasing) Antialiasing 是将字体在后台先以数倍的大小来绘画,然后再缩成想要的大小,未满一格的格子用灰阶补点。由于原本 X 所支持的 logic运算不敷使用,所以才用 XRender  extension 来达成目的。 Antialiasing 会 人一种朦胧的感觉,习惯了Windows XP 下清晰,锐利的字体显示时,Antialiasing 会让人不太适应,会让用户觉得Linux下的字体显示不如Windows XP。但是,其实 Antialiasing是一种很先进的显示技术,当长时间显示器上阅读的时候,Windows XP 下的锐利的字体显示风格,会让眼睛更加容易疲劳,使用Antialiasing,字体的显示更加柔和,更加适合长时间的在显示器上阅读文档,减少眼睛的疲劳。 微软的下一代OS Windows Vista 也将用ClearType 来取代传统的黑白,锐利的英文字体显示和点阵CJK 显示。ClearType的渲染效果和Linux下的 Anti-aliasing 效果很相似。

中文CleraType字体

中文世界里缺少一套合适的 ClearType 屏幕正文显示字体。

这款字体必须能解决在 ClearType 平滑显示状态下小字号正常阅读的问题。现有的所有中文字库都无法在 ClearType 平滑显示状态下完美的文本显示。我们知道, Windows 中的宋体、黑体等字体是由中国北京的中易公司开发的,然后微软向中易公司购买了版权之后嵌入 Window 中文版本。之前的宋体之所以能够在小字号点阵状态下很好的显示,是由于宋体在矢量字库中嵌入了 12 、 14 、 16 、 18 等几个点阵字库,才得以比较优秀的显示。但在 ClearType 状态下,继续采用这样内嵌点阵的方式来显示汉字,就会和平滑显示的英文粗细不一致,同时风格上非常的不协调。由于当初的宋体不是为平滑显示而设计的,强制平滑显示的效果就显得纤细发虚,看起来很模糊。

那为什么英文矢量字体就可以直接使用 ClearType 来进行平滑显示呢?这是因为大多数优秀的英文字体并不是采用内嵌点阵的方式来进行优化的,它们采用的是一种叫做 Hinting (字形微调)的技术来对小字号的显示进行优化。

我们知道,矢量字体是可以无限平滑缩放的,在使用的时候,要通过操作系统的字体引擎自动的解析渲染为实际的像素,才能够在屏幕上显示出来。但是在字号很小的时候,由于能使用的像素非常有限,这种自动解析会出现很多问题,例如笔画粗细不匀,文字之间高低不齐,甚至笔画模糊无法识别等。因此必须由字体设计师人工干预,在矢量字库中嵌入一些附加的提示信息,来告诉字体渲染引擎在某个特定的字号下面,应该如何对这个字符的细节进行修正,才能准确的显示。这种在矢量字体中嵌入的提示信息,就叫做 Hinting 。

对于中文字体来说,这种提示就更为重要,因为中文的笔画繁多,自动解析的错误也就更多更严重。在字号更小的情况下,根本无法显示全部的笔画,这时候还需要设计师在不影响整体的情况下,对笔画进行取舍,去掉一些不影响识别的笔画,否则这个文字就会因糊成一团无法识别。 Hinting 调整的范围需要涵盖各级小字号,一般最少要包括 9px - 18px 这个常用的字号区间。这种 Hinting ,即使是对于非常有经验的设计师,也是非常高难度而且费时费力的工作。

我们知道英文只有 26 个字母,但是对于中文的汉字情况就复杂的多了,仅仅是最常用的汉字就有 6000 个,然后为了在简繁体混排时候能完美的显示,就必须同时包含繁体和简体两套字符,再加上众多的不常用但是会在古籍文献中非常重要的生僻字,一套比较完整的大字符集字库所包含的字符数目将接近 3 万个。仅仅是这矢量造字的工作就是非常浩大的。

这还不算,作为一套功能完整的正文字体,还需要考虑到斜体和粗体的显示。所有的斜体状态,也同样必须由设计师对不同的字号指定不同的 Hinting ,否则就会有显示问题。为了更完美的显示粗体,微软决定将标准体和粗体分开,作为两套单独的字体来设计,安装时也是两套字体,但在系统中使用时是显示为一套字体的不同状态。这套单独的黑体也同样需要单独造字,然后指定一系列的 Hinting 和斜体 Hinting 。因此要开发一套优秀的中文大型字库,耗费的人力物力是惊人的。这也正是这套字体会如此昂贵的原因之一。

Hinting信息是评价一款优秀矢量字体的一个重要指标,良好的Hinting能在小字号下面提供和内嵌点阵字一样优秀的显示质量,同时又降低内存的消耗。虽然我们现在已经拥有不少不错的矢量中文字体,但适合屏幕显示的正文字体很少,而包含完善 Hinting 信息的,一个也没有。

所以,如果要在中文 Vista 平台下彻底完美的实现文本的平滑显示,微软就必须全新开发一套具备完善 Hinting 信息的 ClearType 中文字体。

实际上不仅仅是中国大陆,整个 CJK 地区(中日韩)都要面临这个全新设计字体的问题。从现在已经发布的版本来看,各国的 Vista 版本都有全新设计的专用字体,中国大陆地区的是我们已经知道的的微软雅黑,中国台湾地区的是微软正黑体,日文地区的是 Meiryo (据说这个名称来源于“明了”或者“明流”的读音),韩国地区的则是 Malgun 。

对于微软雅黑和微软正黑,我们不好简单的用简体或者繁体来区分他们,因为这两套字体都同时包含了比较完整的简繁体汉字,以确保在简体和繁体混排的页面上都能够完美的显示。但由于两岸的文教部门在各自的文字规范中对汉字的写法规定有很多细节上的不同,所以这两套字形在正式场合是不能混淆使用的。同样的,日文的Meiryo字体中也包含了大量的繁体汉字,不过由于汉字在日本也经过了上千年的演变,日文中的汉字写法和中国大陆和台湾也有着相当的区别。

相关推荐

    Ubuntu10.04字体美化方案

    2. 调整字体渲染:通过`gsettings set org.gnome.desktop.interface text-rendering antialiased true`启用字体平滑,`gsettings set org.gnome.desktop.interface hinting full`设置全提示,以获得更好的中文显示...

    Mr Stalwart

    在排版和印刷领域,字体的抗锯齿技术和 hinting(字体微调)也是重要的考虑因素,它们能提升在低分辨率屏幕或打印时的清晰度。Mr Stalwart可能经过精心优化,以确保在不同环境下都有良好的视觉表现。 总的来说,...

    Automati

    7. 字体渲染:涉及到字体的抗锯齿、 hinting(微调)等技术,以确保在不同分辨率和设备上保持良好的显示效果。 8. 跨平台兼容性:字体技术需考虑在Windows、MacOS、Linux等不同操作系统以及移动设备上的兼容性。 9...

    Fontosc

    "Fontosc"是一个关于字体设计和管理的工具或资源库,其主要焦点在于提供丰富的字体资源和相关的管理功能。在IT行业中,字体扮演着至关重要的角色,尤其在设计、排版、网页开发以及视觉传达等领域。下面将详细介绍与...

    Sidewindersrb

    6. **字体技术**:现代字体技术包括 hinting(微调)和subpixel rendering(亚像素渲染),这些可以提高在不同分辨率屏幕上的显示质量。Sidewindersrb可能经过精心优化,以在各种设备上呈现最佳效果。 7. **字体在...

    Wet Dream

    4. 字体渲染:操作系统和应用程序如何在屏幕上或打印机上呈现字体,涉及到抗锯齿、hinting(微调)等技术,以优化视觉效果。 5. 字体版权:使用字体时需注意版权问题,商业用途可能需要购买许可证。开源字体,如...

    Chow Fun

    8. **字体技术**:现代字体设计还涉及到技术层面,例如字形 hinting(微调),确保字体在不同分辨率和大小下显示得清晰。此外,OpenType 特性允许添加复杂的文字样式和替代字形,增强了设计的灵活性。 9. **用户...

    GIOTTO

    4. **字体渲染**:字体渲染是操作系统如何在屏幕上显示文本的过程,涉及到抗锯齿、 hinting(字体微调)和子像素渲染等技术,以提高在不同分辨率屏幕上的可读性。 5. **字体管理和字体工具**:在计算机系统中,管理...

    URGENT

    4. **字体渲染**:操作系统如何将字体文件转换为屏幕上的可见文字,包括抗锯齿、 hinting(字体微调)等技术,影响到文字在不同分辨率和尺寸下的清晰度。 5. **字体冲突**:安装过多的字体可能导致冲突,系统可能...

    KellyBrown

    7. 字体渲染:操作系统和设备如何呈现字体也会影响最终效果,例如抗锯齿技术和 hinting(微调)技术可以优化字体在低分辨率屏幕上的显示。 综上所述,"KellyBrown"可能是一个具有独特设计风格的TrueType字体,通过...

    Omgbldrk

    字体渲染是操作系统如何在屏幕上显示文本的过程,涉及抗锯齿、 hinting(字形微调)等技术,以提高文本的可读性和美观性。不同的操作系统和设备可能会有不同的渲染策略,这会影响"Omgbldrk"在不同环境下的显示效果。...

    CFB

    3. **字体渲染**:抗锯齿、 hinting(字体微调)和子像素渲染等技术,用于在屏幕上清晰地显示字体。 4. **字体库和管理**:操作系统如何管理字体库,用户如何安装和使用自定义字体,以及字体权限和版权问题。 5. *...

    GENTILE

    3. **字体技术**:包括抗锯齿技术、 hinting(字体微调)等,这些技术有助于在不同分辨率的屏幕上清晰显示字体。 4. **字体版权**:使用非自由字体时需注意版权问题,避免侵犯设计者的知识产权。 5. **字体在UI...

    FACK

    TrueType还支持“hinting”,即在特定像素网格上对字体进行微调,以在低分辨率设备上获得更好的显示效果。 3. **字体安装与使用**:用户可以通过将"FACK.TTF"文件复制到系统的字体目录,或者使用系统设置工具来安装...

    Moronsoft

    5. **字体渲染**:如何在屏幕上完美地呈现字体是一项复杂的技术,涉及到抗锯齿、hinting(字形微调)等技术,以确保字体在不同分辨率和像素密度的设备上看起来良好。 6. **Web 字体**:随着网页设计的发展,...

    32768 NO

    3. 字体渲染:如何在屏幕上显示这些字体,包括抗锯齿技术、 hinting(字体微调)等。 4. 字体管理和应用:如何在操作系统中安装、启用和使用自定义字体。 5. 字符映射表:查找32768号字符在特定字体中的对应关系,...

    reboard

    这涉及到抗锯齿技术、hinting(微调)和子像素渲染等。 3. **字体管理**:在操作系统层面,用户可以安装、组织和选择使用哪些字体。例如,Windows的“字体控制面板”和macOS的“字体册”。 4. **开源字体项目**:...

    Bit1

    2. **字体渲染**:如何在屏幕上以高质量的方式显示字体,包括抗锯齿、 hinting(微调)等技术。 3. **字形编码**:如ASCII、Unicode、GB2312等,它们决定了如何将字符与数字或二进制值对应起来。 4. **字体嵌入**:...

    Accidentalpre

    6. 字体渲染:在屏幕上显示字体时,会涉及到抗锯齿、 hinting(微调)等技术,以优化在不同分辨率下的视觉效果。 7. 字体在UI设计中的应用:在用户界面设计中,字体的选择能影响信息的可读性和整体的用户体验。清晰...

    RamRod

    - **字体技术**:抗锯齿、ClearType、 hinting(字体微调)等。 - **字体设计工具**:例如Glyphs、Inkscape、Fontlab等。 - **字体版权**:理解字体的授权方式和使用限制。 - **CSS字体属性**:在网页设计中,如何...

Global site tag (gtag.js) - Google Analytics