TTF、TOF、WOFF 和 WOFF2 的相关概念

简介: 在上一篇文章中,我引入了 TTF 格式的字体文件来解决各平台字体表现不统一的问题。

7.png


前言


在上一篇文章中,我引入了 TTF 格式的字体文件来解决各平台字体表现不统一的问题。

但其实那不是最优解决方案,因为字体文件不止有 TTF 格式,常见的字体格式还有 OTF、WOFF 和 WOFF2 等。


今天,我来总结一下最常见字体格式的相关概念,方便以后在使用的时候可以做出最优选择。


TTF(TrueType Font)


TrueType 是由美国苹果公司和微软公司共同开发的一种电脑轮廓字体(曲线描边字)类型标准。


这种类型字体文件的扩展名是 .ttf,类型代码是 tfil。


TrueType的主要强项在于它能给开发者提供关于字体显示、不同字体大小的像素级显示等的高级控制。


其兼容性如下:


6.png


OTF(OpenType Font)


OpenType 是 Adobe 和 Microsoft 联合开发的跨平台字体文件格式,也叫 Type 2 字体,它的字体格式采用 Unicode 编码,是一种兼容各种语言的字体格式。


OpenType 也是一种轮廓字体,比TrueType 更为强大,并且还支持多个平台,支持很大的字符集,还有版权保护。可以说它是Type 1和 TrueType 的超集。


OpenType 标准定义了 OpenType 文件名称的后缀名:


  • 包含 TrueType 字体的 OpenType 文件后缀名为 .ttf
  • 包含 PostScript 字体的文件后缀名为 .OTF
  • 如果是包含一系列 TrueType 字体的字体包文件,那么后缀名为 .TTC


OTF 的主要优点有:


  1. 增强的跨平台功能;
  2. 更好的支持Unicode标准定义的国际字符集;
  3. 支持高级印刷控制能力;
  4. 生成的文件尺寸更小;
  5. 支持在字符集中加入数字签名,保证文件的集成功能。


同一个 OpenType 字体文件可以用于 Mac OS,Windows 和 Linux 系统,这种跨平台的字库非常方便于用户的使用,用户再也不必为不同的系统配制字库而烦恼了。


OTF 的兼容性和 TTF 相同。


WOFF(Web Open Font Format)


Web 开放字体格式是一种网页所采用的字体格式标准。此字体格式发展于 2009 年,现在正由万维网联盟的 Web 字体工作小组标准化,以求成为推荐标准。


此字体格式不但能够有效利用压缩来减少档案大小,并且不包含加密也不受 DRM(数位著作权管理)限制。


WOFF 本质上是包含了基于 sfnt 的字体(如 TrueType、OpenType 或开放字体格式),且这些字体均经过 WOFF 的编码工具压缩,以便嵌入网页中。这个字体格式使用zlib压缩,文件大小一般比 TTF 小 40%。


其兼容性如下:


5.png


WOFF2


WOFF 2 标准在 WOFF1 的基础上,进一步优化了体积压缩,带宽需求更少,同时可以在移动设备上快速解压。


与 WOFF 1.0 中使用的 Flate 压缩相比,WOFF 2.0 是使用 Brotli 方法进行的压缩,压缩率更高,所以文件体积更小。


其兼容性如下:


4.png


补充概念


在上面的概念中,出现了 Type 1 字体Type 2 字体的说法,我在这里补充一下它们两个的相关概念。


Type 1 字体


Type 1 字体于 1984 年由 Adobe 引入,与其 PostScript 页面描述语言一起使用,随着可使用 PostScript 的桌面出版软件和打印机的普及而得到了广泛使用。1996 年,Adobe 产品和文字开发开始重点关注用途更为广泛的 OpenType 字体,对 Type 1 的关注减少了。


3.png


Type 2 字体


Open Type 字体也叫 Type 2 字体,这个叫法其实也是为了对应 Type 1 字体而产生的,表示比 Type 1 更进一步。


总结


通过上面的概念,可以看出:


  • TTF 的兼容性更好,但是其字体文件体积最大。
  • WOFF 字体比 TTF 字体有更小的体积和更好的表现性。
  • WOFF 2 字体是对 WOFF 字体的升级。


所以,如果不考虑兼容性的话,字体使用首推 WOFF 2 ,这也是我在文章开头说使用 TTF 并非最优解决方案的原因,大家可以根据自己的实际情况,酌情选择合适的字体文件,以达到性能优化的目的。


~ 本文完,感谢阅读!


学习有趣的知识,结识有趣的朋友,塑造有趣的灵魂!




相关文章
|
Web App开发 Java Apache
使用batik在kotlin中将TTF字体转换为SVG图像
将TTF字体自由的转换为SVG图像是一个有趣的媒体交换,如何实现这一冷门的需求呢?本文参考batik的源代码并利用其中一些功能实现这个有创造力的小功能。
501 0
使用batik在kotlin中将TTF字体转换为SVG图像
解决IIS Web部署 svg/woff/woff2字体找不到问题
最近项目中用到了fontawesome-webfont.svg等字体。部署项目后,发现没有<,+等符号,字体也不对,发现浏览器总是报找不到woff、woff2字体的错误。
305 0
解决IIS Web部署 svg/woff/woff2字体找不到问题
|
Web App开发 存储 前端开发
基于RGB、HSL、HWB、LAB和LCH的CSS颜色指南
基于RGB、HSL、HWB、LAB和LCH的CSS颜色指南
787 0
webfont.woff2和webfont.woff下载超时报404错误
webfont.woff2和webfont.woff下载超时报404错误
179 0
webfont.woff2和webfont.woff下载超时报404错误
|
前端开发
CSS3中引入多种自定义字体(font-face)
CSS3中引入多种自定义字体(font-face)
448 0
CSS3中引入多种自定义字体(font-face)
|
Web App开发 前端开发 JavaScript
剖析CSS-Tricks,为我所用
[CSS-Tricks网站](//css-tricks.com/)是一个非常优秀的网站,特别对于CSSer而言,该网站不断的在更新一些优秀的教程和技巧,为前端社区做出了具大的贡献。她一直是我的偶像,也是我学习的榜样,因为我从该网站上学到了很多新技术,让我在CSS方面的眼界扩展的更大。今年1月份改版之后,整个社交媒体的响应非常的热烈,很多人都为新版赞赏。而我这次参加[中国第五届CSS Conf大会]
1623 0
|
JavaScript 前端开发