字体格式

最近研究了一把字体的各种格式。英文字体都不是什么大事,因为就只有那么几十个字母,一个字体文件顶多几百K,而中文字体全一点的都上十M,加载慢,CDN花费高,这个时候就得考虑优化了。

关于字体文件类型

TTF

全称TrueTypeFont,是苹果和微软合推的一种格式,所以应用广泛,估计当时只考虑了英文,没考虑CJK,所以它是一种未优化的RAW格式,中文TTF就会非常大。TTF中存储的字型是二阶贝塞尔控制点。首先得明确,因为文字是可放大可缩小的,所以是向量图,而非点阵图。

OTF

全称是OpenTypeFont,是微软和Adobe合搞的,基于TTF有些许改进,所以尺寸也会很大。

woff

全称Web Open Font Format,由Mozilla基金会、Opera软件公司和微软推动,基于OpenType和TrueType,使用了zlib压缩,尺寸大约比TTF要小40%左右。不管是TTF、OTF还是WOFF都是SFNT存储格式,一种查表定位的可扩展文件格式。​

woff2

woff2认为是woff的2.0版本,平均压缩还能再提高30%,使用的是一种基于7z压缩的改良算法。

svg

就是xml描述的向量图了,比TTF尺寸还要大好几倍。

EOT

微软的压缩字库格式,只有IE浏览器支持。

TTC

全称是TrueType Collection,就是几个TTF的合集,比如Bold Black Regular三种粗细打包成一个字体。

关于字体使用

以前CSS中font-family是只能写本机安装的字体名,后来,CSS3中提供了对网络字体的支持,写法如下:

@font-face {
	font-family: 'FontName';
	src: url('FontName.woff') format('woff'), /* Modern Browsers */
         url('FontName.ttf')  format('truetype'), /* Safari, Android, iOS */
   }

这样就能在font-family中使用该字体了。

相关工具

sfnt2woff和woff2sfnt可以完成ttf和woff的相互转换

fonttools可以完成特定汉字的抠取,制作精简字体

python dir/fontTools/subset.py /tmp/xxx.ttf --text='天使爱美丽' --output-file=./xxx_sub.woff --flavor=woff

 

发表于 2016年08月09日 01:13   评论:0   阅读:2622  



回到顶部

首页 | 关于我 | 关于本站 | 站内留言 | rss
python logo   django logo   tornado logo