.ttf TTF字库文件格式详解
一、简述
TTF文件是苹果和微软共同推出的矢量字体文件
文件使用sfnt封装格式(和mp4容器格式类似),一个.ttf文件就是一个sfnt容器,容器里放入了很多表,每个表都有4个英文字符的名字。
sfnt容器头的信息:{sfnt版本号 + 有多少张表 + 搜索范围 + 入口选择 + 范围平移 + 所有的表索引}
每个表在前面都有一个tableentry地址索引,在所有表索引的最后是每个表的实际数据。
表索引的统一格式:{4个字母的表名 + 校验和 + 表数据的地址 + 表长度}
一些关键的表:
字体头head:字体版本号、创建时间、字体的最大最小像素、
字符索引cmap:Unicode等编码的汉字和字模字模索引进行对应,编码ID
字模索引loca:每个字模索引与实际字模数据地址的对应关系
字模glyf:所有文字的矢量轮廓数据
不重要的表:
最大需求表maxp:需要的内存
水平规格mmtx:
说明name:字体名字
水平布局hmtx:推荐的行间距
字距离调整表kerm:
二、详述
- 写在前面,苹果的官方英文协议文档网址,啃得动的可以啃:TrueType Reference Manual
| 编写人员 | 将狼才鲸 |
|---|---|
| 编写时间 | 2023-11-27 |
一、.ttf矢量字库
1)前言
- .ttf文件是电脑手机中最常用的字库文件,可以用来显示矢量文字、矢量图标、矢量单色图片,缩放后不失真。
- .ttf格式的文件是TrueType字体,由微软和苹果共同发布。
- 一个英文矢量字库只有数百K,一个中文矢量字库有几M到几十M。
- 一个字库文件里可以同时包含多套汉字编码,如Unicode。
- 每个汉字的编码,就是它在字库里面的索引。
- 字库文件里有索引表和每个文字的字模,硬件上每次解码只显示一个英文字母或者汉字,通过快速循环来显示一整行或者一整页。
2).ttf文件结构分析
- 我们以barbatri.ttf英文字库为例:
| 字库大小 | 字库内容 |
|---|---|
![]() |
![]() |
- .ttf文件不能通过从文件中简单的搜索某几个固定的字符就得到索引参数或者某个文字的字模,而是需要完整的解析整个文件后,才能查索引得到某个字的字模数据。
- .ttf文件是由一个文件头+数十张表组成的,文件头中包含了表的数量和表的入口地址。
- .ttf文件的框架如下:



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/17803.html