- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
根据Apple's Reference manual for TrueType字体文件中,有 45 种不同类型的字体表。检查我在系统上安装的那些 ttf,我确定这些文件中实际存在的表格数量范围为每个文件 12 个到最多 22 个字体表格。
进一步查看 true type 字体文件的结构,它从以下信息开始:
uint32 scaler type A tag to indicate the OFA scaler to be used to rasterize this font; see the note on the scaler type below for more information.
uint16 numTables number of tables
uint16 searchRange (maximum power of 2 <= numTables)*16
uint16 entrySelector log2(maximum power of 2 <= numTables)
uint16 rangeShift numTables*16-searchRange
这让我们有理由相信,对预先计算但完全冗余的字段存在普遍需求 rangeShift
、entrySelector
、searchRange
。它甚至指出它们用于字体表列表的二进制搜索:
The entries for searchRange, entrySelector and rangeShift are used to facilitate quick binary searches of the table directory that follows (source https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6.html)
考虑添加这些字段的一个正当理由是,确实存在大量字体表,无论如何,这些字段都可以从 numTables
即时计算。
因此,我的问题是,尽管我进行了测试,但确实存在合理预期 true type 字体具有更大数量(例如 >1000)的表格的情况,这意味着是否可能存在问题45 种不同类型的字体表中的任何一种都可以多次出现?
列出的表格如下。
- The 'acnt' (accent attachment) table
- The 'ankr' (anchor point) table
- The 'avar' (axis variation) table
- The 'bdat' (bitmap data) table
- The 'bhed' (bitmap font header) table
- The 'bloc' (bitmap location) table
- The 'bsln' (baseline) table
- The 'cmap' (character code mapping) table
- The 'cvar' (CVT variation) table
- The 'cvt ' (control value) table
- The 'EBSC' (embedded bitmap scaling control) table
- The 'fdsc' (font descriptor) table
- The 'feat' (layout feature) table
- The 'fmtx' (font metrics) table
- The 'fond' (font family compatibility) table
- The 'fpgm' (font program) table
- The 'fvar' (font variation) table
- The 'gasp' (grid-fitting and scan-conversion procedure) table
- The 'glyf' (glyph outline) table
- The 'gvar' (glyph variation) table
- The 'hdmx' (horizontal device metrics) table
- The 'head' (font header) table
- The 'hhea' (horizontal header) table
- The 'hmtx' (horizontal metrics) table
- The 'just' (justification) table
- The 'kern' (kerning) table
- The 'kerx' (extended kerning) table
- The 'lcar' (ligature caret) table
- The 'loca' (glyph location) table
- The 'ltag' (language tag) table
- The 'maxp' (maximum profile) table
- The 'meta' (metadata) table
- The 'morx' (extended metamorphosis) table
- The 'name' (name) table
- The 'opbd' (optical bounds) table
- The 'OS/2' (compatibility) table
- The 'post' (glyph name and PostScript compatibility) table
- The 'prep' (control value program) table
- The 'prop' (properties) table
- The 'sbix' (extended bitmaps) table
- The 'trak' (tracking) table
- The 'vhea' (vertical header) table
- The 'vmtx' (vertical metrics) table
- The 'xref' (cross-reference) table
- The 'Zapf' (glyph reference) table
“字体表”似乎允许其中任意“扩展”,例如有一个标记为 FFTM
的字体表,
"[...] is unique to FontForge. It contains three timestamps: First FontForge's version date, then when the font was generated, and when the font was created. I describe its format here."
https://fontforge.github.io/TrueOpenTables.html
即使是像 FFTM
这样偶尔添加的表似乎也不值得使用 searchRange 等字段。
最佳答案
当 TrueType 在 20 世纪 80 年代末/90 年代初发明时,开发人员不确定随着格式的采用,事情会如何演变。另请记住,当时的处理器速度要慢得多。
事实证明,事实上,很少有字体拥有超过 25 个表格,并且可能没有一个字体能够接近这样的数字,在这种情况下,二分搜索和使用预先计算的字段将在定位表格时产生很大的差异(与仅迭代排序列表)。
尽管如此,这些字段是规范的一部分,不能“省略”。许多实现忽略这些字段,并且它们经常填充错误的值,但请注意,许多字体检查器/验证器/ sanitizer 确实会检查它们,并可能将错误的值标记为无效字体。因此,如果您问这个有关创建字体的问题,我建议您在字段中填写正确的数据。
关于fonts - TrueType 字体文件中的字体表数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57324782/
这是 .ttf 字体的呈现方式: 我使用 FontForge 创建了这种纯矢量 TrueType 字体。 我想在需要基于矢量的字形的应用程序上使用这种字体,并且不支持加载 .ttf 嵌入位图(似乎没有
我有 C# winform,我安装了几个 ttf 字体,但是当我将文本框字体设置为我下载的任何字体时,我得到这个错误即使我 100% 确定我安装的字体是ttf..为什么 ?以及如何解决这个问题? 最佳
规范( http://www.microsoft.com/typography/otspec/cmap.htm )在 windows 平台中只有 platformID 3(windows) 和 pla
我正在尝试使用freetype 2.6库从某些.ttf字体中提取字距调整信息。 这是我获得字距调整信息(通过字符循环)的方式: if( FT_HAS_KERNING(face->getFace())
根据Apple's Reference manual for TrueType字体文件中,有 45 种不同类型的字体表。检查我在系统上安装的那些 ttf,我确定这些文件中实际存在的表格数量范围为每个文
我目前正在处理损坏的 TrueType 字体。我可用的程序告诉我 maxp 有问题表--maxContours成员的值太大。是否有可靠的方法来检测 maxContours值太高或太低(是的,这也可能是
我在 OpenType 的规范中找不到任何信息/TrueType glyf 表,阐明复合字形的组件是否总是简单的字形,或者它们是否可以是复合字形本身(即递归复合字形)。 由于规范没有明确禁止复合字形作
这是一个定义了 few terms for the horizontal glyph metrics for fonts 的图表. 假设我有一句话, Foo bar baz. 如何获取单词“Foo”和
我可以使用 java 从 true type 字体创建位图字体文件吗? 谢谢 最佳答案 在 J2ME 优化中使用它 - 关于java - 从 truetype 字体创建位图字体文件,我们在Stack
我在 TrueType 字体文件中的 glyf 表中有一个字符的字形数据。 此数据表示为十进制数字块。 示例:Calibri 11pt 中的字符“a”(字形索引 258) 02092255237363
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
是否有任何 java 库可用于从 true type 字体 (.ttf) 中提取每个字符? 字体的每个字符,我要: 将其转换成图片 提取其代码(例如:Unicode 值) 任何人都可以帮助向我展示有关
我正在为某人开发一个网站,但他们希望(坚持)标题使用非标准字体。 (客户永远是对的。)我有 TrueType (.ttf) 字体,但我如何将它与网站捆绑在一起以便它使用它? 我尝试将它放在 Image
尝试使用 TTF 进行图像渲染。我在应用程序所在的 Linux 机器上没有任何东西;我不知所措,通过 SCP 从我的本地机器到服务器并将应用程序指向它们来在黑暗中拍摄。我认为这是行不通的,因为我的机器
我需要从 .ttf 文件中提取信息。例如字体的名称和样式。也许将来会有更多信息。如何在 Python 中比查找规范和大量编码更容易地做到这一点? 一个简短的代码示例会很棒。 最佳答案 检查一下:How
我正在使用 FreeType 呈现文本。有人告诉我 TrueType 依赖于数学,因此当像位图字体一样缩放时不应该变得模糊。然而,这正是发生在我身上的事情。 我所做的是首先在 FreeType 中初始
我将 TrueType 字体嵌入到 pdf 中,因此需要为其创建描述符字典。 必填字段包括 StemV 而且我还没有在 ttf 中找到存储此信息的位置。 我想我在某处看到了一个提示,它是 CVT 的一
我有一个 PDF,它在 Acrobat 中呈现良好,但在我们打印机的 RIP 上的 PDF 到 PS 转换过程中无法打印。在用 pdftk 解压缩和编辑后,我发现如果我替换某种字体的用法,它将打印出来
长话短说,我在不使用 FreeType 或 HarfBuzz(出于各种原因)的情况下渲染字体,通过手动解析 TrueType 和衍生格式来提取元数据和字形信息,以便稍后从其轮廓构建位图和距离场运行。我
长话短说,我在不使用 FreeType 或 HarfBuzz(出于各种原因)的情况下渲染字体,通过手动解析 TrueType 和衍生格式来提取元数据和字形信息,以便稍后从其轮廓构建位图和距离场运行。我
我是一名优秀的程序员,十分优秀!