2012-01-01 89 views

回答

5

/BlueScale的值描述於Type 1 Font Format由Adobe Systems出版。請參閱第5.6節BlueScale(第45頁),它將整個頁面轉換爲描述BlueScale值。

簡而言之,BlueScale會告訴字體渲染器應該關閉它的字體比例過沖抑制過沖涉及字形形狀的一個特徵,落入字形設計中的重要水平帶。類型1格式將這些波段表示爲對齊區域。對齊區域可能用於基線或x高度。 過沖抑制意味着字體渲染器應該呈現所有字體特徵,最終在對齊區域中的像素高度相同。

過沖抑制是Type 1字體格式中的幾個提示之一,它允許字體渲染器生成漂亮的字形,但沒有多少設備像素可呈現字形形狀,因此無法保持保真度到字形輪廓的細微差別。通過確保對齊區域中的所有特徵都以相同的像素高度呈現,渲染器即使不保真也可以提供一致性。另一方面,在字形較大或設備像素較小的情況下,有很多像素可以保持字形輪廓的逼真度,因此不需要過沖抑制。

/BlueScale值是以設備像素爲單位給出一個字符單位(其中1 em爲1000個字符單位)的大小的數字。如果字符單位的大小大於此值,則關閉超調抑制。如果字符單位的大小較小,則會啓用過沖抑制。 類型字體1格式不清楚如果字符單位的大小恰好等於BlueScale值會發生什麼情況。

5.6節給出了在300 dpi設備上設置BlueScale值的建議。約束條件是:

  • BlueScale = (pointsize - 0.49)/240集的BlueScale到一個值,它可以讓一個整數點大小得到過沖抑制,並且下一個最大的整數點大小關閉過沖抑制。
  • 設置BlueScale使得(pointsize - 0.49) * (maximum alignment zone height) < 240,,即 BlueScale的值足夠小,使得在字體中的最大對齊區域變成一個設備像素高之前結束過沖抑制。

值240基於每英寸72個PostScript語言點單位和每英寸300個設備像素和每個em-square 1000個字符單位的組合。單點平方米每個點具有1000個字符單位,即每英寸72 * 1000個字符單位,或每個設備像素72 * 1000/300個字符單位,每個設備像素= 240個字符單位。

5.6節給出了兩個例子的BlueScale值,字體磅值300dpi的設備上:

  • 0。039625讓過沖抑制發生在晚上9點,但不會出現在10個點
  • 0.04379讓過沖抑制在10個點上發生,而不是發生在11分
  • 對於23個字符單元的最大取向區的高度,一個10,而不是11點大小必須與的BlueScale公式中使用,以使得在過沖抑制被調用

過沖抑制還受/BlueShift參數,在所描述23個字符單位達不到1個設備像素第5.7節BlueShift1型字體格式。細節超出了這個答案的範圍;你真的必須閱讀1型書本身。

5.6節類型1字體格式的BlueScale解釋清楚所有這些,但不是完全嚴格。這不是一個簡單的話題。如果您真的想了解這些材料,請務必閱讀整個Type 1字體格式書籍,以及PostScript Language Reference Manual的座標系和字體部分,以及您自己的公式。

+0

該死!我得等23個小時才能獲獎。 – 2012-01-28 04:53:40

+0

謝謝@luserdroog,你很親切。 – 2012-01-28 05:12:07