[英]What's "optical bounds" of CTLine?
CTLineGetBoundsWithOptions()
使用CTLineBoundsOptions
。 選項之一是kCTLineBoundsUseOpticalBounds
其文檔說:
傳遞此選項以使用光學邊界。
但我不明白optical bounds
的含義。
字體設計者可以將字形的光學邊界與其印刷邊界分開指定。 在 TrueType 字體中, opbd
表(如果存在)包含光學邊界。
來自WWDC 2012 Session 226: Core Text and Fonts :
現在,當我進入下幾張幻燈片時,我想特別提醒您注意屏幕上這個矩形的左側和右側,因為我將開始向這個 API 傳遞一些不同的選項,它會有一個兩邊都有影響。
當我調用使用光學邊界時,讓我們繼續前進。 這是一個非常細微的區別,但您可能已經注意到盒子的邊緣在這里被拉入了一點。 這里發生的事情是光學邊界與排版邊界密切相關,線的常規測量。
但是,在這種情況下,字體設計者已指定字體可能被我們的眼睛感知的方式意味着它們不會僅與字形測量值完全對齊。 在這種情況下,光學邊界被設計為在此處引入這些卷曲引號中的任何一個,因為我們的眼睛看到圓形的方式。 這與我們看到的直線有點不同,所以字體設計者通過向我們提供字體信息來彌補這一點。
(在此處找到完整的會話記錄。)
在水平設置中按其明顯的左或右范圍對齊字形,或在垂直設置中按明顯的頂部或底部范圍對齊字形,替換按原點對齊字形的默認行為。 這種行為的另一個名稱是視覺理由。 給定字形的光學邊緣僅與其前進寬度或邊界框間接相關; 此功能提供了一種獲得真正視覺對齊的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.