opentype - HarfBuzz - 有没有办法获得特定字体的最大前瞻/回溯字形计数?
问题描述
我们正在开发一个使用 HarfBuzz 处理 OpenType 的文本编辑程序。当用户键入时,我们正在使用 HarfBuzz 对键入后的文本进行重新分析,因此我们将获得正确的 GSUB 等等。
我们希望尽可能分析较少的文本。
我们试图找到如何使用 HarfBuzz 获取有关特定字体的信息,有关在 OpenType 表中此字体的不同查找中定义的前瞻或回溯的最大长度。
有没有办法使用 HarfBuzz 获得“lookaheadGlyphCount”和“backtrackGlyphCount”。
请参阅有关 LookupType 6 和 LookupType 8 的Microsoft 文档
编辑 :
有关更多说明,请参阅 TypeDrawers - Here上的此问题。
解决方案
有没有办法使用 HarfBuzz 获得“lookaheadGlyphCount”和“backtrackGlyphCount”。
不使用当前的 HarfBuzz 公共 API。
HarfBuzz 解析表并使用该信息,但出于某种原因没有公开它。您可以使用 HarfBuzz 私有 API 编写自己的解析器,但我已经与 Behdad 交谈过,有理由不公开它,这可能是它的不可靠性或其他原因。
我还应该补充一点,这是字体的非常具体的细节,GSUB/GPOS 不是构建字体的唯一方式,有没有这些字体的字体,而 AAT morx/kerx 字体有不同的故事,所以我的建议是寻找其他缓存解决方案。
Firefox、Chrome 的旧版式引擎和 Minikin 正在使用字缓存方法,https://github.com/linebender/skribo/issues/6你也许也可以使用类似的东西,或者,显然像 LayoutNG 一样单独缓存每个段落铬。
推荐阅读
- selenium - 通过 Jenkins 中的 run.bat 文件运行我的 git 测试时,在类路径异常中找不到类
- c# - C#编译器如何保证转换成功?
- asp.net-core - 为什么 Microsoft AspNetCore App 在依赖项中显示两次
- javascript - 如何刷新 js-select(多选)?
- linux - linux挂载的文件系统占用主机空间
- testing - 无法在 Katalon Studio 中单击对象
- android - 如何使用 ViewPager 在主 Activity 中初始化我的片段
- react-native - 如何在 ios 和 android 中对 react native 应用程序进行性能测试?
- php - 如果用户试图访问网站 scouce 代码,如何阻止用户 ip
- ansible - ansible 在它注册变量的任务处停止