專利名稱:字體提示中的筆畫對比的制作方法
字體提示中的筆畫對比些旦 冃足許多計算系統(tǒng)可通過在屏幕或某種其它媒體諸如打印頁上顯示文本來向 用戶演示信息。人類視覺系統(tǒng)的物理特性以及各種類型與質(zhì)量的電子顯示或打 印技術(shù)在類型設(shè)計者在開發(fā)可演示文本的字樣時對類型設(shè)計者提出獨特的挑 戰(zhàn)。在印刷術(shù)中,字樣由一組協(xié)調(diào)的字符設(shè)計組成。字樣通常由字母、數(shù)字、標點符號、意符和符號(統(tǒng)稱為字符或字形)組成。Arial、 Times New Roman、 Verdana和Georgia是四種字樣的示例。在傳統(tǒng)上,詞語"字體(font)"表示特定尺寸(通常以點為單位測量)、粗細(例如,細體、印刷體、粗體、黑體) 和方向(例如,羅馬體、斜體、傾斜)的全部字樣。對于一種給定的字樣,每 一字符一般對應(yīng)于單個字形,盡管一些字樣的某些字符可包括多個字形。筆畫是許多字形的主要特征。例如,可將表示字符'E,的字形視為包括三 個水平筆畫(也稱為"水平線(crossbar)")和一個垂直筆畫。在許多字樣中,各筆畫可具有不同的相對寬度或粗細。筆畫粗細的關(guān)系稱 為"筆畫對比(stroke contrast)"。筆畫對比有助于字樣的可讀性與美感。對于 現(xiàn)代類型設(shè)計者的一個挑戰(zhàn)是,以對于一定范圍的字體尺寸與顯示分辨率最佳 保持筆畫對比的方式來顯示給定字樣的字形。概述本文描述和要求保護的實現(xiàn)使用編程性約束或"提示"來幫助對于一定范 圍的字體尺寸和顯示分辨率保持筆畫對比。"字體提示"方法的一個實現(xiàn)對筆 畫粗細實施調(diào)整使得對于足以呈現(xiàn)筆畫對比的字體尺寸與顯示分辨率保持筆 畫對比?;蛘?,如果字體尺寸與顯示分辨率不足以呈現(xiàn)給定字體的所有必需的 筆畫粗細,則可平衡某些筆畫粗細以適應(yīng)這些尺寸與分辨率限制同時還可改變 其它筆畫粗細以保持至少部分筆畫對比。字體提示指令確定筆畫對比閾值,它可用于決定在呈現(xiàn)字形時是保持還是忽略筆畫對比。在一個實現(xiàn)中,筆畫對比 閾值基于關(guān)聯(lián)于字樣的一或多個筆畫對比關(guān)系。在另一實現(xiàn)中,筆畫對比閾值 基于最小尺寸閾值。在又一實現(xiàn)中,筆畫對比閾值基于小寫/大寫筆畫對比關(guān)系。在一些實現(xiàn)中,提供作為計算機程序產(chǎn)品的制品。計算機程序產(chǎn)品的一個 實現(xiàn)提供計算機系統(tǒng)可讀且編碼計算機程序的計算機程序存儲介質(zhì)。計算機程 序產(chǎn)品的另一實現(xiàn)可在包含在載波中、由計算系統(tǒng)使用并編碼計算機程序的計 算機數(shù)據(jù)信號中提供。在此還描述并敘述了其它實現(xiàn)。提供本概述以簡化的形式介紹下面在詳細說明中進一步描述的一些概念。 本概述不是要標識要求保護主題的關(guān)鍵特征或本質(zhì)特征,也不應(yīng)當用于限制要 求保護主題的范圍。附圖簡述
圖1例示示例性字體提示模塊和所得到的字符顯示。圖2例示呈現(xiàn)給定字體中的字形的示例性操作。圖3例示通過筆畫對比保持字體提示定義字樣的示例性操作。圖4例示呈現(xiàn)使用筆畫對比保持字體提示呈現(xiàn)字體中的字形的示例性操作。圖5例示可在實現(xiàn)所述技術(shù)時使用的示例性系統(tǒng)。 詳細說明可縮放的輪廓字體被定義為用坐標、數(shù)學曲線和/或其它參數(shù)描述的連續(xù) 形或輪廓狀。通常,字形可通過高分辨率表示來定義,輪廓是其中的一示例。 其它高分辨率表示可非限制性地包括分類的輪廓線、組件元素、位圖、數(shù)學描 述及其它表示。在字體 定義中描述的基本輪廓可在顯示或輸出(打印)單獨字形時從存儲 器(例如字體文件或字體高速緩存)中讀出。字體定義可基于字體設(shè)計單位(或 "字體單位")的具有x與y軸的笛卡兒格網(wǎng),盡管也可使用其它坐標框架。 使用這樣的字體單位,指定的字樣中字形的基本輪廓可與所顯示的字形尺寸或 輸出設(shè)備當要生成一個字形時,縮放基本輪廓至指定的尺寸且隨后用于在顯示器或 硬拷貝輸出設(shè)備上以指定的尺寸創(chuàng)建離散的點光柵(例如像素的位圖)。如果 以過分簡單的方法產(chǎn)生這樣的位圖,諸如簡單地關(guān)閉其中央位于經(jīng)縮放的輪廓 之內(nèi)的每一像素或者打印機單元,則會出現(xiàn)許多視覺上令人分心的偽像,諸如 特征未對齊以及形狀的中斷(稱為"漏失(dr叩-out)")。例如,如果縮放字形 并以小尺寸呈現(xiàn)和/或呈現(xiàn)至低分辨率顯示器,則通過像素開啟/關(guān)閉表示字形 將僅粗略地逼近經(jīng)縮放的輪廓,因為所得到的像素太大且本質(zhì)上是離散的而難 以遵從經(jīng)縮放的輪廓。因此,可使用稱為"字體提示(font hinting)"的額外處理來優(yōu)化對給定尺 寸與顯示分辨率的字形的呈現(xiàn)。字體提示代碼可被包括在每一單獨字形的字體 定義中,或者與其相關(guān)聯(lián)。字體提示為光柵圖象處理器(RIP)提供信息以增 強字體的光柵化。例如,字體提示可用于使經(jīng)縮放的輪廓變形以改進呈現(xiàn)。字 體提示可用于(l)保證應(yīng)當?shù)却值墓P畫顯得等粗;(2)抑制不需要的過沖(例如, 在非有意地將一個圓形字母如"0"縮放為顯得比扁平字母如"M"高的時候); (3)對齊不同字形上應(yīng)當具有相同高度的特征;(4)保持干線之間的空間開放(例 如"m"的垂直筆畫之間的空間應(yīng)當可見);(5)強制一組平行筆畫之間的間隔 一致;以及(6)補償光柵化算法中的錯誤,諸如引起漏失的錯誤。圖1例示示例性字體提示模塊100以及得到的字符顯示102、 104、 106 與108。如在字符顯示102中可見,字符"H"包括兩個主垂直筆畫110和112 以及一個水平筆畫114 (也稱為"水平線")。在字符顯示102中的字符以特 定的尺寸與分辨率顯示并且表現(xiàn)出筆畫對比,其中與水平筆畫114 (例如1像 素)相比,垂直筆畫110與112較粗或者具有較大的筆畫粗細(例如3像素)。 字體提示模塊100接收指定字體的字符"H"的經(jīng)縮放的輪廓并且執(zhí)行字體提 示指令來使經(jīng)縮放的輪廓變形以便增強呈現(xiàn)。字符顯示104以比字符顯示102小的尺寸且更高的分辨率顯示字符"H"。 不過,該尺寸與顯示分辨率的組合能夠保持與在字符顯示102中看到的相同筆 畫對比——3像素的垂直筆畫與1像素的水平筆畫。字體提示模塊100接收指 定字體的字符"H"的經(jīng)縮放的輪廓并且執(zhí)行字體提示指令來使該定義變形以 適應(yīng)特定的尺寸與分辨率。相比之下,字符顯示106也以比字符顯示102小的尺寸顯示字符"H", 但其分辨率比字符顯示104低。單靠縮放,字符的某些方面將不會映射到字符 顯示106中顯示的"H"。而是,垂直筆畫看上去比在字符顯示104時高,在 垂直方面上偏離中心,并且相對于襯線特征偏離中心,而水平筆畫將相對于垂 直筆畫的長度偏離中心。因此,對于該尺寸與顯示分辨率的組合,字體提示模 塊100執(zhí)行字體提示指令來使該定義變形以調(diào)整這些特征并且通過在垂直與水 平筆畫的粗細方面施加某種差異來保持部分筆畫對比。盡管筆畫對比與字符顯 示102和104不同,但在字符顯示106中仍可感知,因而保持了字樣的可讀性 與個性。然而,字符顯示108以與字符顯示104和106相似的尺寸顯示字符"H", 但其分辨率比字符顯示106更低。在該配置中,字體提示模塊IOO已經(jīng)無法保 持筆畫對比,這從垂直與水平筆畫一致的筆畫粗細來看是顯然的。因此,字形的尺寸和顯示器的分辨率可引起給定字體的所顯示字形的錯 誤。具體地,這些參數(shù)會破壞某些字體的筆畫對比。因此,字體提示模塊100 執(zhí)行字體提示指令來使字形的經(jīng)縮放的輪廓變形,以便盡可能地保持筆畫對 比。圖2例示呈現(xiàn)給定字體的字形的示例性操作200。定義操作202定義字樣。 如所述的,字樣一般定義為包括一組坐標,該組坐標定義其字符集中每一字形 的基本輪廓。在一些實現(xiàn)中,字樣中各個字形的定義可由印刷工人手動定義。 在其它實現(xiàn)中,各個字形的定義可使用字形示例的計算機實現(xiàn)分析或者基本輪 廓的直接計算機化生成來自動確定。還有其它實現(xiàn)可將各個字形或字體的手動 定義與計算機化定義兩者結(jié)合起來。另一個定義操作204定義使給定尺寸與顯示分辨率的字形的經(jīng)縮放的輪 廓變形的字體提示指令。例如,字體提示指令可以在呈現(xiàn)時執(zhí)行操作以移動"H" 的經(jīng)縮放的輪廓來確保垂直筆畫具有一致的寬度。在一個實現(xiàn)中,定義操作204 在給定字樣(或其部分)的字體定義中記錄筆畫粗細的測量??煞治鲞@些測量 以確定關(guān)聯(lián)于字樣的一或多個筆畫對比關(guān)系。讀操作206讀取字形的字體定義與字體提示代碼。在一個實現(xiàn)中,字體定 義可存儲在硬盤上的字體庫中?;蛘撸煮w定義可被高速緩存在存儲器中供每次呈現(xiàn)字形時重新使用。縮放操作208縮放為字形指定的基本輪廓。在一個實現(xiàn)中,基本輪廓是使 用與笛卡兒平面對齊的坐標以字體單位來定義的,并且縮放可使用對這些坐標的變換來完成??s放操作208可由計算機或計算機化設(shè)備的應(yīng)用程序、操作系 統(tǒng)或者其它系統(tǒng)中關(guān)聯(lián)于字體提示模塊的縮放模塊來執(zhí)行。 一個示例性縮放算法在下面示出x,—尺寸~分辨率Y "_72*粒度 "其中X"表示基于字體單位的笛卡兒格網(wǎng)中關(guān)聯(lián)于字形的Z坐標,義"表示像素 坐標系統(tǒng)中關(guān)聯(lián)于字形的相應(yīng)的經(jīng)縮放的X坐標,尺寸表示經(jīng)縮放的字形的點 尺寸,分辨率表示輸出設(shè)備的分辨率,粒度表示關(guān)聯(lián)于坐標格網(wǎng)(即全身正方 形(em square))的粒度度量,按照字體單位每全身(em)。因子'72'反映每英寸 的點數(shù)。指令操作210對字形的經(jīng)縮放的輪廓執(zhí)行字體提示代碼。在一個實現(xiàn)中, 使經(jīng)縮放的輪廓變形以遵守字體提示代碼基于關(guān)聯(lián)于字樣的一或多個筆畫對 比關(guān)系、經(jīng)縮放的字形尺寸和顯示設(shè)備的分辨率計算的垂直和垂直筆畫寬度。 指令操作210的示例實現(xiàn)的細節(jié)參考圖4提供。如果按照經(jīng)縮放的字形的尺寸 和顯示分辨率是可能的,則在指令操作210中提供的字體提示的結(jié)果是表現(xiàn)出 一些筆畫對比的經(jīng)縮放的輪廓。字體提示代碼的其它方面可改變經(jīng)縮放的字形 的其它特征,包括修復(fù)漏失、過沖等。呈現(xiàn)操作212基于變形后的經(jīng)縮放的輪廓生成字形的位圖。例如,其中心 位于變形后的經(jīng)縮放的輪廓內(nèi)的像素可關(guān)閉(例如暗),同時其中心位于變形 后的經(jīng)縮放的輪廓之外的像素可開啟(例如亮)。應(yīng)當理解,各個像素的狀態(tài) 也可以是漸進的(例如較亮或較暗)而不只是開或關(guān)。也有可能使用替換規(guī)則 來生成位圖。例如,可將各個像素細分為子像素(例如像素的不同顏色通道), 使得各個子像素被開或關(guān)(或者較亮或較暗)。呈現(xiàn)操作212可由計算機或計 算機化設(shè)備的應(yīng)用程序、操作系統(tǒng)或其它系統(tǒng)中的呈現(xiàn)模塊執(zhí)行。圖3例示用筆畫對比保持字體提示定義字樣的示例性操作300。定義操作 302定義給定字樣的各個字形的基本輪廓。如前所述,基本輪廓可使用坐標、曲線和/或其它參數(shù)來定義。在一個實現(xiàn)中,手或計算機繪制的字形基本輪廓可 數(shù)字化為字體單位并且存儲在字體文件中。然而,各個字形的基本輪廓也可從 計算機化模型或圖象生成。粗細操作304確定字樣中代表性字形或多個字形的垂直筆畫的筆畫粗細 (例如寬度)和水平筆畫的筆畫粗細。在一個實現(xiàn)中,在一系列預(yù)處理步驟中,自動提示器程序建立一個數(shù)據(jù)結(jié)構(gòu)來表示字形中標識的所有筆畫(垂直、水平 和斜向)的組成部分。自動提示器程序生成輪廓的線段列表,按照某種度量, 這些線段應(yīng)該足夠直以成為筆畫的邊。自動提示器程序隨后標識實質(zhì)上反向平 行的邊和連續(xù)邊的對(例如在字形"H"的垂直筆畫的一側(cè)上,邊被水平線"中 斷")以建立表示各個筆畫的數(shù)據(jù)結(jié)構(gòu)的一部分。每一邊與代表性控制點相關(guān) 聯(lián),按照某種印刷上的試探過程,控制點最佳地描述該邊。例如,在數(shù)字上完 全筆直的邊上,僅需要兩個控制點,并且任一控制點可起到代表性控制點的用 途。相比之下,例如在略微凹入的邊上,在最大凹度的地方的控制點可標識為 用于所述用途。隨后通過選擇筆畫每一側(cè)上的表示性控制邊、取控制邊上代表性控制點之 間的歐幾里德距離并且將該距離投影到垂直于筆畫的主方向的法向量上來確定距離。例如,對于標識為垂直筆畫(方向為y方向)的筆畫,用于確定筆畫 粗細的兩個控制點不必彼此水平相對,因此距離被投影到水平法線(即x方向) 上。計算操作306處理筆畫粗細測量。在一個實現(xiàn)中,平均在單個字樣上的垂 直筆畫粗細以產(chǎn)生合成垂直筆畫粗細,并且平均在該單個字樣上的水平筆畫粗 細以產(chǎn)生合成水平筆畫粗細。在一替換實現(xiàn)中,使用來自一或多個參考字形的 垂直和水平筆畫粗細來表示合成的垂直和水平筆畫粗細。在又一替換實現(xiàn)中, 可使用每一各個字形的平均垂直和水平筆畫粗細作為該字形的合成垂直與水 平筆畫粗細。確定操作308使用合成筆畫粗細來確定給定字樣或字樣中各個字形的筆 畫對比關(guān)系。例如,在字樣"Verdana"中,主垂直筆畫以198字體單位的粗 細設(shè)計而主水平筆畫以176字體單位的粗細設(shè)計。使用將較細筆畫作為較粗筆 畫的百分比的筆畫對比關(guān)系,所得到的筆畫對比關(guān)系是89%。也可使用其它形式的筆畫對比關(guān)系,包括比率、斜率等,以及將較粗筆畫粗細作為較細筆畫粗 細的百分比的關(guān)系。存儲操作310記錄關(guān)聯(lián)于字樣和/或字樣的各個字形的一或 多個筆畫對比關(guān)系。其它參數(shù)也可與字樣和/或各個字形相關(guān)聯(lián),包括可在字體 提示過程中使用的分辨率閾值、最小尺寸閾值、筆畫對比關(guān)系等等。圖4例示呈現(xiàn)使用筆畫對比保持字體提示呈現(xiàn)字體中的字形的示例性操作400。當選擇一個字形來輸出時,在讀操作402中,從字體庫(或高速緩存) 讀出基本字形輪廓的字體定義以及相關(guān)聯(lián)的字體提示指令和其它參數(shù)??s放操 作404基于指定的字形尺寸與顯示設(shè)備的分辨率縮放基本輪廓。舍入操作406以像素測量經(jīng)縮放的字形輪廓的筆畫粗細(即垂直或水平) 的較大者并且將測得的筆畫粗細舍入到最接近的像素或者某種像素相關(guān)的舍 入點。調(diào)整操作410按照筆畫粗細關(guān)系對舍入的較大筆畫粗細進行調(diào)整,并舍 入以將經(jīng)調(diào)整的筆畫粗細度量確定為筆畫度量閾值。例如,在一個實現(xiàn)中,如 果字形的舍入垂直筆畫粗細為5像素(筆畫粗細的較粗者)并且筆畫對比關(guān)系 為89%,則經(jīng)調(diào)整的筆畫粗細度量為經(jīng)調(diào)整的筆畫對比度量=舍入(5像素的89%)=舍入(4.45像素) =4像素判定操作412測試經(jīng)縮放的輪廓是否滿足筆畫對比閾值。例如,如圖4 所示,如果經(jīng)調(diào)整的筆畫粗細度量與較大筆畫粗細相差至少指定的分辨率閾值 如一像素,則經(jīng)縮放的輪廓滿足筆畫對比閾值。判定操作412有效地標識字形 在筆畫對比閾值的哪一側(cè)。在筆畫對比閾值的一側(cè)上,保持筆畫對比;在筆畫 對比閾值的另一側(cè)上,忽略筆畫對比。在上面具有一像素的指定分辨率閾值的示例中,四像素的經(jīng)調(diào)整筆畫粗細 度量與較大筆畫粗細(五像素)相差至少一像素(示例性分辨率閾值)。因此, 滿足筆畫對比閾值,并且分配操作414將經(jīng)調(diào)整的筆畫粗細度量分配給字形的 較小筆畫粗細,從而保持筆畫對比。否則,如果經(jīng)調(diào)整的筆畫粗細度量沒有與 較大筆畫粗細相差至少一像素,諸如在下面描述的情形中經(jīng)調(diào)整的筆畫對比度量=舍入(5像素的91%)=舍入(4.55像素) =5像素則不滿足筆畫對比閾值,并且另一個分配操作416將較大筆畫粗細分配給字形 的較小筆畫,從而犧牲了筆畫對比。字體提示操作418使較小筆畫的經(jīng)縮放的輪廓變形以具有所分配的筆畫 粗細。如果分配了經(jīng)調(diào)整的筆畫粗細度量(例如在分配操作414中),則基于 該變形,較小的筆畫表現(xiàn)出與較大筆畫相差至少分辨率閾值的對比。相比之下, 如果分配了較大的筆畫粗細(例如在分配操作416中),則基于該變形,較小 的筆畫不表現(xiàn)出與較大筆畫的對比。可使用各種不同方法來確定筆畫對比閾值,諸如上面所述的經(jīng)調(diào)整筆畫對 比度量方法。在一個替換實現(xiàn)中,筆畫對比閾值基于最小尺寸閾值(諸如最小 像素每全身閾值)。如果經(jīng)縮放的字形尺寸大于或等于最小尺寸閾值,則將保 持筆畫對比。在一些印刷應(yīng)用中,像素每全身尺寸可表示輸出設(shè)備環(huán)境的真實 特性。例如,42像素每全身對應(yīng)于300點每英寸(dpi)輸出設(shè)備(例如激光 或噴墨打印機)上的10個點,它表示典型的文本字體尺寸和低端輸出設(shè)備的 典型分辨率兩者。因此,例如,印刷工程師可為這樣的輸出設(shè)備設(shè)置42像素 每全身的最小尺寸閾值,使得任何要呈現(xiàn)為滿足最小尺寸閾值(例如大于或等 于最小尺寸閾值)的字形被呈現(xiàn)為保持筆畫對比(例如,諸如通過使用分配操 作414)。對比之下,任何要呈現(xiàn)為不滿足最小尺寸閾值(例如小于最小尺寸 闊值)的字形被呈現(xiàn)為忽略筆畫對比(例如,諸如通過使用分配操作416)。在又一實現(xiàn)中,可控制大寫和小寫字符的筆畫之間的筆畫對比。對于一些 字樣,大寫字符的主垂直筆畫可大于相應(yīng)的小寫字符的主垂直筆畫。例如,在 Verdana中,字符的大寫主垂直筆畫被設(shè)計為具有198字體單位的粗細,然而, 同一字符的小寫主垂直筆畫被設(shè)計為具有188字體單位的粗細,呈現(xiàn)95%的大 寫/小寫筆畫對比關(guān)系。在某些輸出上下文中,大寫主筆畫可用比小寫主筆畫低的像素每全身來滿 足筆畫對比閾值,得到在一定的尺寸/分辨率條件下表現(xiàn)出筆畫對比的大寫字 符,而在相同的尺寸/分辨率條件下不表現(xiàn)出筆畫對比的小寫字符。該情形可導致不希望的且引起混亂的效果,其中大寫字符顯得比小寫字符明顯地較寬或較 粗。因此,在該實現(xiàn)中,基于大寫/小寫筆畫對比關(guān)系確定筆畫對比閾值。如果字形的經(jīng)縮放的輪廓滿足筆畫對比閾值(例如,使用與參考判定操作412描 述的相似測試;最小像素每全身尺寸,或者某種其它方法),則經(jīng)縮放的字形 被呈現(xiàn)為對于大寫和小寫字符都保持筆畫對比(例如,諸如通過使用分配操作 414)。對比之下,如果經(jīng)縮放的字形不滿足筆畫對比閾值,則經(jīng)縮放的字形 被呈現(xiàn)為忽略筆畫對比但保持大寫與小寫字符之間的一致性。因此,在該情形 中,計算字樣中大寫字符與小寫字符之間的合成垂直和水平筆畫粗細,并且將 合成垂直筆畫粗細應(yīng)用于大小寫字符的垂直筆畫,以及將合成水平筆畫粗細應(yīng) 用于大小寫字符的水平筆畫。應(yīng)當理解,合成筆畫粗細可用各種方法計算,包 括平均大寫和小寫筆畫粗細,比例分配大寫和小寫筆畫粗細等等。用于實現(xiàn)本發(fā)明的圖5的示例性硬件和操作環(huán)境包括計算機20形式的通 用計算設(shè)備,計算機20包括處理單元21、系統(tǒng)存儲器22和將包含系統(tǒng)存儲器 在內(nèi)的各種系統(tǒng)組件耦合至處理單元21的系統(tǒng)總線23??梢詢H有一個處理器 單元21,也可以有不止一個處理器單元21,使得計算機20的處理器包括單個 中央處理單元(CPU),或者包括多個處理單元,它們統(tǒng)稱為并行處理環(huán)境。 計算機20可以是常規(guī)計算機、分布式計算機或者任何其它類型的計算機;本 發(fā)明不受此限制。系統(tǒng)總線23可以是任何若干類型的總線結(jié)構(gòu),包括存儲器總線或存儲器 控制器、外圍總線、交換網(wǎng)、點對點連接以及使用任何各種總線架構(gòu)的局部總 線。系統(tǒng)存儲器還可簡稱為存儲器,并且包括只讀存儲器(ROM) 24和隨機 存取存儲器(RAM) 25。基本輸入/輸出系統(tǒng)(BIOS) 26被存儲在ROM 24中, 它包含幫助計算機20內(nèi)的元件之間諸如在啟動時傳送信息的基本例程。計算 機20還包括讀寫硬盤(未示出)的硬盤驅(qū)動器27,讀寫可移動磁盤29的磁盤 驅(qū)動器28,以及讀寫可移動光盤31如CD ROM或其它光介質(zhì)的光盤驅(qū)動器 30。硬盤驅(qū)動器27、磁盤驅(qū)動器28和光盤驅(qū)動器30分別通過硬盤驅(qū)動器接 口 32、磁盤驅(qū)動器接口 33和光盤驅(qū)動器接口 34連接至系統(tǒng)總線23。這些驅(qū)動器及其相關(guān)聯(lián)的計算機可讀介質(zhì)為計算機20提供計算機可讀指令、數(shù)據(jù)結(jié) 構(gòu)、程序模塊和其它數(shù)據(jù)的非易失性存儲。本領(lǐng)域技術(shù)人員應(yīng)當了解,可存儲 計算機能訪問的數(shù)據(jù)的任何類型的計算機可讀介質(zhì)可在示例性操作環(huán)境中使用,諸如磁帶盒、閃存卡、數(shù)字視頻盤、隨機存取存儲器(RAM)、只讀存儲 器(ROM)等等。可在硬盤、磁盤29、光盤31、 ROM24或RAM25中存儲許多程序模塊, 包括操作系統(tǒng)35、 一或多個應(yīng)用程序36、其它程序模塊37以及程序數(shù)據(jù)38。 用戶可通過諸如鍵盤40和定點設(shè)備42等輸入設(shè)備將命令和信息輸入到個人計 算機20中。其它輸入設(shè)備(未示出)可包括話筒、操縱桿、游戲手柄、圓盤 式衛(wèi)星天線、掃描儀等等。這些和其它輸入設(shè)備常常通過耦合到系統(tǒng)總線的串 行端口接口 46連接到處理單元21,但可通過其它接口如并行端口、游戲端口 或通用串行總線(USB)來連接。監(jiān)示器47或其它類型的顯示設(shè)備也可通過 接口諸如視頻適配器48連接到系統(tǒng)總線23。除了監(jiān)示器,計算機一般包括其 他外圍輸出設(shè)備(未示出),諸如揚聲器和打印機。計算機20可使用至一或多個遠程計算機諸如遠程計算機49的邏輯連接在 網(wǎng)絡(luò)化環(huán)境中運行。這些邏輯連接是通過耦合到計算機20或作為其一部分的 通信設(shè)備來實現(xiàn)的;本發(fā)明不限于特定類型的通信設(shè)備。遠程計算機49可以 是另一個計算機、服務(wù)器、路由器、網(wǎng)絡(luò)PC、客戶機、對等設(shè)備或其它普通 網(wǎng)絡(luò)節(jié)點,并且一般包括許多或全部上面相對于計算機20所述的元件,盡管 在圖5中僅例示了存儲器存儲設(shè)備50。圖5描繪的邏輯連接包括局域網(wǎng)(LAN) 51和廣域網(wǎng)(WAN) 52。這樣的網(wǎng)絡(luò)環(huán)境在辦公室網(wǎng)絡(luò)、企業(yè)級計算機網(wǎng)絡(luò)、 內(nèi)聯(lián)網(wǎng)或因特網(wǎng)(它們都是網(wǎng)絡(luò)類型)中是常見的。當在LAN網(wǎng)絡(luò)連接的環(huán)境中使用時,計算機20通過網(wǎng)絡(luò)接口或適配器 53 (它是一種類型的通信設(shè)備)連接到局域網(wǎng)51。當在WAN網(wǎng)絡(luò)連接環(huán)境中 使用時,計算機20—般包括調(diào)制解調(diào)器54、網(wǎng)絡(luò)適配器、 一種類型的通信設(shè) 備、或者用于在廣域網(wǎng)52上建立通信的任何其它類型的通信設(shè)備。調(diào)制解調(diào) 器54可以是內(nèi)置或外置的,通過串行端口接口 46連接到系統(tǒng)總線23。在網(wǎng)絡(luò) 化環(huán)境中,相對于個人計算機20描繪的程序模塊或其部分可存儲在遠程存儲 器存儲設(shè)備中。要了解,所示的網(wǎng)絡(luò)連接是示例性的,并且可使用在計算機之間建立通信鏈接的其它裝置和通信設(shè)備。在示例性實現(xiàn)中,縮放模塊、字體提示模塊、呈現(xiàn)模塊和其它模塊可包含在由存儲在存儲器404和/或存儲設(shè)備408與410中并且由處理單元402處理的 指令中。字體定義、字體提示代碼、筆畫對比關(guān)系、分辨率閾值、最小尺寸閾 值、筆畫對比閾值、經(jīng)縮放的字體輪廓、所呈現(xiàn)的位圖以及其它數(shù)據(jù)可存儲在 存儲器404和/或存儲設(shè)備408與410中。在此描述的技術(shù)實現(xiàn)為一或多個系統(tǒng)中的邏輯操作和/或模塊。邏輯操作 可實現(xiàn)為一系列在一或多個計算機系統(tǒng)中執(zhí)行的處理器實現(xiàn)的步驟,以及實現(xiàn) 為一或多個計算機系統(tǒng)中的互連機器或電路模塊。同樣,可按照模塊執(zhí)行或影 響的操作提供各種組件模塊的描述。所得到的實現(xiàn)是選擇性的,取決于實現(xiàn)所 述技術(shù)的底層系統(tǒng)的性能要求。因此,構(gòu)成在此所述技術(shù)的實施例的邏輯操作 可不同地稱為操作、步驟、對象或模塊。而且,應(yīng)當理解,可按任何順序執(zhí)行 邏輯操作,除非明確地要求或者特定順序為權(quán)利要求語言在本質(zhì)上必需。上述描述、示例和數(shù)據(jù)提供對本發(fā)明示例性實施例的結(jié)構(gòu)和用途的完整描 述。盡管上面己經(jīng)用某種程度的特殊性或者參考一或多個單獨的實施例描述了 本發(fā)明的各種實施例,但本領(lǐng)域的技術(shù)人員可在不脫離本發(fā)明的精神或范圍的 情況下對所公開的實施例作出眾多更改。具體地,應(yīng)當理解,所述技術(shù)可獨立 于個人計算機來使用。因此構(gòu)想了其它實施例。包含在上述說明中并且在附圖 中描述的全部內(nèi)容應(yīng)當解釋為僅說明特定實施例的例示而且不是限制性的。在 不脫離所附權(quán)利要求書定義的本發(fā)明的基本元素的情況下,可在細節(jié)或結(jié)構(gòu)方 面作出改變。盡管已經(jīng)以專用于結(jié)構(gòu)特征和/或方法學領(lǐng)域的語言描述了本主題,但要 理解,所附權(quán)利要求書定義中的主題不必受限于上述這些特定特征或動作。相 反,上述特定特征和動作是作為實現(xiàn)要求保護主題的示例形式來公開的。
權(quán)利要求
1.一種控制字樣的字形中筆畫對比以便由具有一顯示分辨率的輸出設(shè)備以指定字形尺寸演示的方法,其中,所述字形具有定義的基本表示,所述方法包括按照所述指定的字形尺寸與所述顯示分辨率,縮放(206)所述字形的基本表示;基于所述指定的字形尺寸與所述顯示分辨率,確定(208)筆畫對比閾值;如果所述字形的經(jīng)縮放的表示滿足所述筆畫對比閾值,則使所述經(jīng)縮放的表示變形(210)以保持所述字形中的筆畫對比;以及如果所述字形的經(jīng)縮放的表示不滿足所述筆畫對比閾值,則使所述經(jīng)縮放的表示變形(210)以忽略所述字形中的筆畫對比。
2. 如權(quán)利要求1所述的方法,其特征在于,還包括確定關(guān)聯(lián)于所述字樣的筆畫對比關(guān)系,其中,所述筆畫對比閾值基于所述 筆畫對比關(guān)系。
3. 如權(quán)利要求2所述的方法,其特征在于,所述筆畫對比關(guān)系將所述字形 的基本表示的垂直筆畫粗細與所述字形的基本表示的水平筆畫粗細聯(lián)系起來。
4. 如權(quán)利要求1所述的方法,其特征在于,所述確定操作包括 確定關(guān)聯(lián)于所述字樣的筆畫對比關(guān)系;以及選擇所述字形的經(jīng)縮放的表示的垂直筆畫粗細或所述字形的經(jīng)縮放的表示的水平筆畫粗細中的較大筆畫粗細;將所述較大筆畫粗細舍入到最接近的像素相關(guān)舍入點;以及 基于所述筆畫對比關(guān)系調(diào)整所述舍入的較大筆畫粗細以產(chǎn)生經(jīng)調(diào)整的筆畫粗細度量作為所述筆畫對比閾值。
5. 如權(quán)利要求4所述的方法,其特征在于,如果經(jīng)調(diào)整的筆畫粗細度量與 所述舍入的較大筆畫粗細相差至少分辨率閾值,則確定所述字形的經(jīng)縮放的表 示滿足所述筆畫對比閾值。
6. 如權(quán)利要求4所述的方法,其特征在于,所述使經(jīng)縮放的表示變形以保 持所述字形中的筆畫對比的操作包括選擇所述字形中具有所述字形的經(jīng)縮放的表示的垂直筆畫粗細或所述字 形的經(jīng)縮放的表示的水平筆畫粗細中較小筆畫粗細的筆畫;以及使所選擇的筆畫變形以具有所述經(jīng)調(diào)整的筆畫粗細度量的筆畫粗細。
7. 如權(quán)利要求4所述的方法,其特征在于,如果所述經(jīng)調(diào)整的筆畫粗細度 量沒有與所述舍入的較大筆畫粗細相差至少分辨率閾值,則確定所述字形的經(jīng) 縮放的表示不滿足所述筆畫對比閾值。
8. 如權(quán)利要求4所述的方法,其特征在于,所述使經(jīng)縮放的表示變形以省略所述字形中的筆畫對比的操作包括選擇所述字形中具有所述字形的經(jīng)縮放的表示的垂直筆畫粗細或所述字 形的經(jīng)縮放的表示的水平筆畫粗細中較小筆畫粗細的筆畫;以及使所選擇的筆畫變形以具有所述較大筆畫粗細的筆畫粗細。
9. 如權(quán)利要求1所述的方法,其特征在于,還包括 為所述輸出設(shè)備呈現(xiàn)所述字形。
10. 如權(quán)利要求1所述的方法,其特征在于,還包括確定關(guān)聯(lián)于所述字樣的最小尺寸閾值,其中所述筆畫對比閾值基于所述最 小尺寸閾值。
11. 如權(quán)利要求l所述的方法,其特征在于,還包括確定將所述字樣的大寫字符的筆畫粗細與所述字樣的小寫字符聯(lián)系起來 的筆畫對比關(guān)系,其中,所述筆畫對比閾值基于所述筆畫對比關(guān)系。
12. 如權(quán)利要求11所述的方法,其特征在于,所述筆畫對比關(guān)系將所述字 形大寫形式的基本表示的筆畫粗細與所述字形小寫形式的基本表示的筆畫粗 細聯(lián)系起來。
13. 如權(quán)利要求1所述的方法,其特征在于,所述確定操作包括 確定將所述字樣的大寫字符的筆畫粗細與所述字樣的小寫字符的筆畫粗細聯(lián)系起來的筆畫對比關(guān)系;以及選擇所述字形的經(jīng)縮放的表示的垂直字符筆畫粗細或所述字形的經(jīng)縮放的表示的水平字符筆畫粗細中的較大字符筆畫粗細;將所述較大筆畫粗細舍入到最接近的像素相關(guān)舍入點;以及 基于所述筆畫對比關(guān)系調(diào)整所述舍入的較大筆畫粗細以產(chǎn)生經(jīng)調(diào)整的筆畫粗細度量作為所述筆畫對比閾值。
14. 如權(quán)利要求13所述的方法,其特征在于,如果所述經(jīng)調(diào)整的筆畫粗細 度量與所述舍入的較大筆畫粗細相差至少分辨率閾值,則確定所述字形的經(jīng)縮 放的表示滿足所述筆畫對比閾值。
15. 如權(quán)利要求13所述的方法,其特征在于,所述使經(jīng)縮放的表示變形以保持所述字形中的筆畫對比的操作包括選擇所述字形中具有所述字形的經(jīng)縮放的表示的垂直筆畫粗細或所述字 形的經(jīng)縮放的表示的水平筆畫粗細中較小筆畫粗細的筆畫;以及使所選擇的筆畫變形以具有所述經(jīng)調(diào)整的筆畫粗細度量的筆畫粗細。
16. 如權(quán)利要求13所述的方法,其特征在于,如果所述經(jīng)調(diào)整的筆畫粗細 度量沒有與所述舍入的較大筆畫粗細相差至少分辨率閾值,則確定所述字形的 經(jīng)縮放的表示不滿足所述筆畫對比閾值。
17. 如權(quán)利要求13所述的方法,其特征在于,所述使經(jīng)縮放的表示變形以 忽略所述字形中的筆畫對比的操作包括基于所述字形大寫形式的經(jīng)縮放的表示的筆畫粗細與所述字形小寫形式 的經(jīng)縮放的表示的筆畫粗細兩者,計算合成筆畫粗細;以及使所述字形大寫形式的經(jīng)縮放的表示和所述字形小寫形式的經(jīng)縮放的表 示兩者的筆畫變形以具有所述合成筆畫粗細。
18. 如權(quán)利要求17所述的方法,其特征在于,所述計算合成筆畫粗細的操作包括平均所述字形大寫形式的經(jīng)縮放的表示的筆畫粗細與所述字形小寫形式 的經(jīng)縮放的表示的筆畫粗細。
19. 一種控制字樣的字形中的筆畫對比以便由具有一顯示分辨率的輸出設(shè) 備演示的系統(tǒng),其中所述字形具有定義的基本表示,所述方法包括縮放模塊(208),按照指定的字形尺寸與所述顯示分辨率縮放所述字形 的表示;以及字體提示模塊(100),基于所述指定的字形尺寸和所述顯示分辨率確定 筆畫對比閾值,如果所述字形的經(jīng)縮放的表示滿足所述筆畫對比閾值,則使所 述經(jīng)縮放的表示變形以保持所述字形中的筆畫對比,以及如果所述字形的經(jīng)縮放的表示不滿足所述筆畫對比閾值,則使所述經(jīng)縮放的表示變形以忽略所述字 形中的筆畫對比。
20. —種控制字樣的字形中的筆畫對比以便由具有一顯示分辨率的輸出設(shè) 備演示的系統(tǒng),其中所述字形具有定義的基本表示,所述方法包括縮放模塊(208),按照指定的字形尺寸與所述顯示分辨率縮放所述字形 的表示;字體提示模塊(100),基于所述指定的字形尺寸與所述顯示分辨率確定 筆畫對比閾值,其中所述筆畫對比閾值基于將來自一或多個基本表示的筆畫粗 細聯(lián)系起來的筆畫對比關(guān)系;以及呈現(xiàn)模塊(212),如果所述字形的經(jīng)縮放的表示滿足所述筆畫對比閾值, 則為所述輸出設(shè)備生成所述經(jīng)縮放的表示的位圖以保持所述字形中的筆畫對 比,以及如果所述字形的經(jīng)縮放的表示不滿足所述筆畫對比閾值,則為所述輸 出設(shè)備生成所述經(jīng)縮放的表示的位圖以忽略所述字形中的筆畫對比。
全文摘要
使用編程性約束或“提示”,對一定范圍的字體尺寸與顯示分辨率保持筆畫對比?!白煮w提示”方法的一個實現(xiàn)實施對筆畫粗細的調(diào)整,使得對于足以呈現(xiàn)筆畫對比的字體尺寸與顯示分辨率保持筆畫對比。字體提示指令確定筆畫對比閾值,它可用于判定在呈現(xiàn)字形時是保持還是忽略筆畫對比。在一個實現(xiàn)中,筆畫對比閾值基于關(guān)聯(lián)于字樣的一或多個筆畫對比關(guān)系。在其它實現(xiàn)中,筆畫對比閾值基于最小尺寸閾值或小寫/大寫筆畫對比關(guān)系。
文檔編號G06T9/20GK101331520SQ200680047655
公開日2008年12月24日 申請日期2006年11月22日 優(yōu)先權(quán)日2005年12月19日
發(fā)明者B·斯坦姆, G·希契考克, M·J·達根 申請人:微軟公司