gpt4 book ai didi

ios - CTFontGetAscent() 与 OSX 上匹配字体的 ascent 有很大不同

转载 作者:行者123 更新时间:2023-11-29 03:58:35 29 4
gpt4 key购买 nike

比较 CTFontGetAscent() 的输出和 OS X 上相同字体的上升值,我得到两个非常不同的值(考虑到磅值)。

例子:Helvetica Neue 的增量为 952,对于点大小 35,增量为 33。CTFontGetAscent 返回 16。标记毛毡(宽)的增量为 800,这导致点大小 35 的增量为 27 点。CTFontGetAscent 返回 37。

考虑 CTFontGetUnitsPerEm() 的值不会产生正确的值。

设备上的字体真的与“桌面字体”有很大不同,还是我遗漏了一些东西?或者 CoreText 返回了错误的结果?

最佳答案

(回答我自己的问题)许多桌面应用程序报告不同的上升值,可在字体的 Windows 兼容性表(“OS/2”表)中找到。

表的原始字节可以通过以下方式访问: CTFontCopyTable(myFontRef, 'OS/2', 0);

表中的所有字节均按网络顺序排列(请参阅 http://linux.about.com/library/cmd/blcmdl3_ntohs.htm )

前 2 个字节构成版本号。每个表版本的规范可以在 http://www.microsoft.com/typography/otspec/os2.htm 找到。 。请记住将每个字段的字节翻转为主机顺序。

表格的“sTypoAscent”字段给出了上升值。将其除以 CTFont (CTFontGetUnitsPerEm) 提供的unitsPerEm 值,即可得到字体的上升百分比。

关于ios - CTFontGetAscent() 与 OSX 上匹配字体的 ascent 有很大不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16173026/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com