我目前正在使用 Harfbuzz 和 Freetype 缓存,使用 FTC_ImageCache_Lookup 来获取我的字形。根据 FreeTypes 文档,我们不应在使用其缓存时调用 FT_Set_Char_Size (请参阅此处)。相反,FTC_ImageCache_Lookup 接收字形的请求高度。
问题是如果不设置字体大小,Harfbuzz 将无法计算某些字形的正确定位(例如,“SARA U”字形)。
有没有办法解决?
我还没有使用 FTC 的经验,但我想你可以通过遵循这个来轻松地在 HarfBuzz 上设置字体大小,基本上是设置 HarfBuzz 的 ot-func 而不是 Freetype hb_ot_font_set_funcs
(甚至可能不需要)并hb_font_set_scale
设置字体大小。