什么是CTLine的“光学范围”?

时间:2019-02-25 18:25:11

标签: ios core-text

CTLineGetBoundsWithOptions()使用CTLineBoundsOptions。选项之一是kCTLineBoundsUseOpticalBounds,其文档显示:

  

传递此选项以使用光学范围。

但是我不理解optical bounds的含义。

1 个答案:

答案 0 :(得分:1)

字体设计者可以单独指定字形的光学范围,而不是其印刷范围。如果使用TrueType字体,the opbd table包含光学范围。

来自WWDC 2012 Session 226: Core Text and Fonts

  

现在,当我前进到下几张幻灯片时,我想特别引起您的注意,注意屏幕上该矩形的左侧和右侧,因为我将开始向此API传递一些不同的选项,并且在任何一方都有效果。

typographic bounds

  

让我们继续前进,因为我提到使用光学界限。这里的差别很小,但是您可能已经注意到盒子的边缘在这里被拉了一点。这里发生的是光学范围与印刷范围(线条的常规测量)紧密相关。

optical bounds

  

但是,在这种情况下,字体设计人员已指定,我们的眼睛可能会感觉到字体的方式意味着它们不仅仅与字形尺寸完全对齐。在这种情况下,由于我们的眼睛看到的是圆形,这种情况下的光学边界被设计为可以使用这两个卷曲的引号。这与我们看到直线的方式有些不同,因此字体设计者通过向我们提供字体信息来弥补这一点。

(找到完整的会话记录here。)

Microsoft describes it this way

  

在水平设置中按字形的明显左或右范围或在垂直设置中按其明显的顶部或底部范围对齐字形,替换按其原点对齐字形的默认行为。此行为的另一个名称是视觉上的辩护。给定字形的光学边缘仅与其前进宽度或边界框间接相关;此功能提供了一种实现真实视觉对齐的方法。