国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于輪廓字型技術的離散字形生成方法

      文檔序號:6559265閱讀:237來源:國知局
      專利名稱:基于輪廓字型技術的離散字形生成方法
      技術領域
      本發(fā)明屬于字符信息處理領域,具體涉及一種基于輪廓字型技術的離散字形生成方法。
      背景技術
      目前比較成熟的字形存儲方式有點矩陣存儲方式和輪廓存儲方式。
      點矩陣存儲方式中國專利CN98120709.x“點矩陣字型產生系統(tǒng)”(
      公開日2000年3月29日)公開了一種采用二進制的方式存儲固定尺寸大小的點矩陣字形,實際是黑白位圖的存儲方式。對其中的黑色點采用“1”表示,白色點用“0”表示。如圖1所示字形。此種方式適用于要求離散字形的場合。
      輪廓存儲方式采用一個或多個曲線輪廓來描述字形(U.S.Pat.N0.5,155,805),使用時,再采用相關的字體引擎進行尺寸縮放,填充轉換為位圖。此種方式,只需存儲封閉輪廓上曲線的描述數(shù)據(jù),具備無級平滑縮放而保持字體風格不變等優(yōu)點。
      對于有必要采用點矩陣字形的場合,現(xiàn)有的點矩陣字形技術存在如下不足之處不能改變點矩陣字形中各個點的外形輪廓;無法實現(xiàn)對各個點的輪廓進行縮放、錯切、鏡像等二維變換。

      發(fā)明內容
      本發(fā)明的目的在于提供一種采用基于輪廓字型技術的離散字形來模擬點矩陣字形的方法,該方法在保持點矩陣字形效果的同時,融合了輪廓字型技術的無級縮放能力等優(yōu)點。
      本發(fā)明的技術方案為基于輪廓字型技術的離散字形生成方法,包括離散字形數(shù)據(jù)存儲過程和字形解釋過程,其中,--離散字形數(shù)據(jù)存儲過程(參見圖4)首先定義字形編碼,在全局字形表中存儲任意一個或多個二維圖形的輪廓數(shù)據(jù),作為離散字形中的點的外形輪廓,在局部字形表表頭處,存儲用于當前離散字形中各離散點變換的二維變換矩陣,在表頭的后面存儲離散字形的各個點的坐標,用于定義具體的離散點;然后,將當前字形編碼與局部字形表的表頭起始位置按照一一對應關系存儲在編碼表中;--字形解釋過程(參見圖5)根據(jù)輸入的字形編碼,在編碼表中找到匹配的字形編碼,提取其局部字形表的起始位置,并讀取全局字形表中的輪廓數(shù)據(jù),根據(jù)存儲在局部字形表中的變換矩陣,對輪廓數(shù)據(jù)進行變換,將變換后的輪廓數(shù)據(jù)進行掃描轉換,填充為位圖,并進行緩沖;然后,繼續(xù)讀取局部字形表中定義的離散字形各點的坐標,并將緩沖位圖拷貝到對應坐標處,即可生成離散字形圖。
      進一步,所述的字形輪廓采用直線或三次貝塞爾曲線表示,輪廓數(shù)據(jù)中曲線的類型用標記符的方式區(qū)分。
      再進一步,所述的字形輪廓為直線時,標記符為1,后面存儲兩對坐標分別表示其起始點和終止點的坐標;對于存在曲線的場合,采用三次貝塞爾曲線進行擬合,標記符為2表示此類曲線的開始,后面存儲四對坐標分別表示其四個控制點;標記符為0的曲線類型,表示當前輪廓結束。
      進一步,多個字形輪廓并存時,對各輪廓進行編號,作為全局數(shù)據(jù)使用。
      進一步,存儲在全局字形表中的離散點的輪廓數(shù)據(jù),能夠通過交換其編號的方式,來實現(xiàn)離散字形中的點的輪廓數(shù)據(jù)的對換。
      進一步,通過設定存儲在局部字形表表頭處的二維變換矩陣中的M11,M12,M21,M22四個參數(shù)值,對字形進行縮放、旋轉、鏡像或錯切變換。
      在上述方法中,全局字形表中的輪廓數(shù)據(jù)可以為任意二維圖形,并且可以定義任意多個,用于離散字形中點的外形輪廓的切換。通過此種方法,本發(fā)明實現(xiàn)了可以任意定義離散字形中離散點的外形輪廓。在局部字形表的表頭存放一個二維變換矩陣,通過對此矩陣的適當配置,本發(fā)明實現(xiàn)了離散字形中各離散點輪廓的平移、縮放、旋轉、錯切、鏡像等二維變換。
      與常用的點矩陣字形方式相比,本發(fā)明采用輪廓字型技術來模擬點矩陣字形。除記錄離散字形中各離散點的坐標數(shù)據(jù)之外,還添加了離散字形中用于定義點的幾何外形的輪廓數(shù)據(jù),以及對此部分數(shù)據(jù)進行操作的變換矩陣。在實現(xiàn)點矩陣字形效果的同時,融入了輪廓字形技術的平滑縮放能力等優(yōu)點,并且可以實現(xiàn)點矩陣字形中點的幾何外形的可變換性、可切換性及可擴展性。


      圖1為一個18×23的點矩陣字形的點矩陣圖形;圖2為一個輪廓字形的輪廓圖形圖;圖3為本發(fā)明系統(tǒng)功能方塊圖;圖4為本發(fā)明離散字形數(shù)據(jù)存儲流程圖;圖5為本發(fā)明字形解釋程序流程圖;圖6為全局字形表的數(shù)據(jù)結構示意圖;圖7為局部字形表的數(shù)據(jù)結構示意圖;圖8為編碼表的數(shù)據(jù)結構示意圖;圖9為一個18×23的基于輪廓字型技術的方形點離散字形圖;圖10為一個18×23的基于輪廓字型技術的圓形點離散字形圖。
      具體實施例方式
      下面結合附圖和具體實施方式
      對本發(fā)明作進一步詳細地描述。
      參照圖2,一個輪廓字形的輪廓圖形圖,該字形由兩個封閉輪廓組合而成,每個封閉輪廓用首尾相連的曲線來表示。圖6為其存儲數(shù)據(jù)結構示意圖,每段具體采用直線或三次貝塞爾曲線來表示,對于曲線的類型,用標記符的方式來區(qū)分。以一個單位正方形字形為例,其存儲方式如下1(0,0)(0,1)1(1,1)(1,0)0(0,0)。其中1代表當前曲線為直線,兩對坐標分別表示其起始點和終止點的坐標。對于存在曲線的場合,采用三次貝塞爾曲線進行擬合,用2表示此類曲線的開始,后面存儲四對坐標分別表示其四個控制點。當碰到0開頭的曲線類型時,當前輪廓結束。
      本發(fā)明存儲的導形可以為任意圖形,按照圖6所示的數(shù)據(jù)結構將其存儲在全局字形表中,對于多個并存的情況,對其進行編號,作為全局數(shù)據(jù)來使用。其示例數(shù)據(jù)如下所示11(0,0)(0,1)1(1,1)(1,0)0(0,0)……n1(x10,y10)(x11,y11)2(x20,y20)(x21,y21)(x22,y22)(x23,y23)..0(0,0)其中,第一個數(shù)字代表當前輪廓的編號,后面存儲的是其輪廓定義數(shù)據(jù)。此部分的數(shù)據(jù)將用于表示離散字形中的點。
      如圖7所示,局部字形表表頭為當前離散字形的變換矩陣,用于對當前使用的全局字形進行變換。根據(jù)變換矩陣中的M11,M12,M21,M22四個參數(shù)值,對字形進行縮放、旋轉、鏡像、錯切等變換;Dx,Dy分別為水平和豎直方向的移動量,用于對離散字形中各個點進行平移變換。假設當前離散字形中的點采用圓形點表示,若設定變換矩陣如下M11=0.4;M22=0.8;則表示將當前離散字形中所有的圓形點水平,垂直方向分別縮至原圖形的0.4倍和0.8倍,而且保持各圓形點的中心位置不變,一般進行縮放變換時,應確??s放因子為大于零的實數(shù);若設定Dx=2,Dy=3,則表示將當前離散字形中各圓形點沿水平方向向右移動2個單位,再沿豎直方向向下移動3個單位,若水平方向移動量為負值表示沿水平方向向左移動,豎直方向移動量為負值表示沿豎直方向向上移動;若設定M12=sin(30),M11=cos(30),M21=-s in(30),M22=cos(30),則表示將當前離散字形中各圓形點繞其中心沿逆時針方向旋轉30度,旋轉角度為負值表示沿順時針方向旋轉;若設定M11=-1,則表示將當前離散字形中各圓形點沿其水平方向的中心線進行鏡像;若設定M22=-1,則表示將當前離散字形中各圓形點沿其豎直方向的中心線進行鏡像;若設定M21=2,則表示將當前離散字形中各圓形點本身進行錯切變換,保持圓形點本身各點豎直方向坐標不變,水平方向向右移動2各單位,其值為負值時表示沿水平方向向左移動;同樣,若設定M12=2,則表示將當前離散字形中各圓形點本身進行錯切變換,保持圓形點本身各點水平方向坐標不變,豎直方向向下移動2個單位,其值為負值時表示沿豎直方向向上移動。以上定義的變換為基本的二維變換,在此基礎上,對于離散字形的變換,可以設置復合變換矩陣,用于實現(xiàn)多于一次以上的復合變換,復合變換矩陣為各次變換矩陣的順序乘積,其變換的結果是順序進行各次變換的綜合效果。
      離散字形表接下來的數(shù)據(jù)為各個離散點的坐標數(shù)據(jù),采用圖7所示的數(shù)據(jù)結構存儲在變換矩陣后面。其中,變量ContourNumber表示構成當前字形的封閉輪廓數(shù)目,Contour i表示第i個封閉輪廓的定義數(shù)據(jù),采用圖6所示數(shù)據(jù)結構存儲。
      一個實際的局部字形表數(shù)據(jù)如下0.4,0,0,0.8,0,0202,32,4…15,15其中初始行存儲用于當前離散字形每個離散點的二維變換矩陣;20表示當前字形由20個離散點組成;其后的數(shù)據(jù)用于記錄每個離散點的坐標。
      編碼表是根據(jù)當前局部字形起始位置,建立的字符編碼與字形數(shù)據(jù)存儲位置間的對應關系。采用圖8所示格式進行存儲,其中,左欄的變量Encoding表示字形編碼,右欄的變量Offset表示字形數(shù)據(jù)存儲位置,即相對于文件頭的偏移量。
      對于存儲在全局字形表中的離散點的輪廓數(shù)據(jù),可以通過交換其編號的方式,來實現(xiàn)離散字形中的點的輪廓數(shù)據(jù)的對換。假設當前全局字形表的數(shù)據(jù)按照如下方式組織0-正方形;1-正三角形;2-倒正三角形;3-菱形;4-圓形等。缺省狀態(tài)下字形解釋程序使用編號為0的點的輪廓數(shù)據(jù)。如果要采用菱形的輪廓數(shù)據(jù)來表示離散字形中的點,則可以通過對換正方形和菱形的編號來實現(xiàn)。通過此方式,本發(fā)明可以實現(xiàn)離散字形中的點的外形輪廓的可切換性及可擴展性。
      當使用基于輪廓方式存儲的離散字形時,參見圖5,字形解釋程序首先根據(jù)字符編碼,查找編碼表,然后根據(jù)編碼表中記錄的偏移量定位到局部字形表,讀取全局字形表中編號為0的點的輪廓數(shù)據(jù),然后根據(jù)局部字形表中的變換矩陣,對其進行變換,再通過掃描轉換,填充算法將其轉換為位圖并進行緩存,接下來讀取局部字形表中各離散點的坐標數(shù)據(jù),并將緩沖位圖拷貝到各點的坐標處,直至當前局部字形表數(shù)據(jù)處理完畢,便生成了給定編碼的離散字形。
      參見圖9,當前全局字形表中編號為0的輪廓數(shù)據(jù)定義為正方形,局部字形數(shù)據(jù)中變換矩陣為單位矩陣,當編碼進入字形解釋程序后,程序會根據(jù)全局字形表的輪廓數(shù)據(jù)及局部變換字形表中的單位矩陣,將變換后的點的輪廓數(shù)據(jù),通過掃描轉換及填充(為方便看到輪廓曲線,設置當前系統(tǒng)畫刷為白色),得到當前離散字形的點輪廓填充位圖,緩沖至內存,然后根據(jù)局部字形表中記錄的坐標數(shù)據(jù)進行位圖的拷貝,便可得到如圖9所示的基于輪廓字型技術的離散字形。
      圖10是一個采用圓點的離散字形圖。其中設置其局部字形表中二維變換矩陣如下M11=1.0;M22=1.0;字形解釋程序中設置當前系統(tǒng)畫刷為白色。
      與現(xiàn)有的點陣存儲方式相比,本發(fā)明提出的方法采用輪廓字型技術來模擬點矩陣字形。數(shù)據(jù)中添加了用于定義離散點幾何外形的輪廓數(shù)據(jù),以及對此部分數(shù)據(jù)進行操作的變換矩陣。在實現(xiàn)點矩陣字形效果的同時,實現(xiàn)了點矩陣字形中的點的幾何外形的可變換性,可切換性及可擴展性。
      本發(fā)明所述的方法并不限于具體實施方式
      中所述的實施例,本領域技術人員根據(jù)本發(fā)明的技術方案得出其他的實施方式,同樣屬于本發(fā)明的技術創(chuàng)新范圍。
      權利要求
      1.一種基于輪廓字型技術的離散字形生成方法,包括離散字形數(shù)據(jù)存儲過程和字形解釋過程,其特征在于--離散字形數(shù)據(jù)存儲過程首先定義字形編碼,在全局字形表中存儲任意一個或多個二維圖形的輪廓數(shù)據(jù),作為離散字形中的點的外形輪廓,在局部字形表表頭處,存儲用于當前離散字形中各離散點變換的二維變換矩陣,在表頭的后面存儲離散字形的各個點的坐標,用于定義具體的離散點;然后,將當前字形編碼與局部字形表的表頭起始位置按照一一對應關系存儲在編碼表中;--字形解釋過程根據(jù)輸入的字形編碼,在編碼表中找到匹配的字形編碼,提取其局部字形表的起始位置,并讀取全局字形表中的輪廓數(shù)據(jù),根據(jù)存儲在局部字形表中的變換矩陣,對輪廓數(shù)據(jù)進行變換,將變換后的輪廓數(shù)據(jù)進行掃描轉換,填充為位圖,并進行緩沖;然后,繼續(xù)讀取局部字形表中定義的離散字形各點的坐標,并將緩沖位圖拷貝到對應坐標處,即可生成離散字形圖。
      2.根據(jù)權利要求1所述的基于輪廓字型技術的離散字形生成方法,其特征在于所述的字形輪廓采用直線或三次貝塞爾曲線表示,輪廓數(shù)據(jù)中曲線的類型用標記符的方式區(qū)分。
      3.根據(jù)權利要求2所述的基于輪廓字型技術的離散字形生成方法,其特征在于所述的字形輪廓為直線時,標記符為1,后面存儲兩對坐標分別表示其起始點和終止點的坐標;對于存在曲線的場合,采用三次貝塞爾曲線進行擬合,標記符為2表示此類曲線的開始,后面存儲四對坐標分別表示其四個控制點;標記符為0的曲線類型,表示當前輪廓結束。
      4.根據(jù)權利要求1、2或3所述的基于輪廓字型技術的離散字形生成方法,其特征在于多個字形輪廓并存時,對各輪廓進行編號,作為全局數(shù)據(jù)使用。
      5.根據(jù)權利要求4所述的基于輪廓字型技術的離散字形生成方法,其特征在于存儲在全局字形表中的離散點的輪廓數(shù)據(jù),能夠通過交換其編號的方式,來實現(xiàn)離散字形中的點的輪廓數(shù)據(jù)的對換。
      6.根據(jù)權利要求1所述的基于輪廓字型技術的離散字形生成方法,其特征在于通過設定存儲在局部字形表表頭處的二維變換矩陣中的M11,M12,M21,M22四個參數(shù)值,對字形進行縮放、旋轉、鏡像或錯切變換。
      全文摘要
      本發(fā)明屬于字符信息處理領域,具體涉及一種采用基于輪廓字型技術的離散字形來模擬點矩陣字形的方法。該方法將離散字形中離散點的幾何輪廓數(shù)據(jù)單獨存儲,對于每個離散字形,存儲一個變換矩陣及各離散點的坐標,字形解釋程序根據(jù)離散字形數(shù)據(jù),得到相應的離散字形。采用本發(fā)明所述的方法,不僅可以實現(xiàn)離散字形中的點的外形輪廓的可變性,而且實現(xiàn)了點的輪廓的平移、縮放、旋轉、錯切、鏡像等二維變換。
      文檔編號G06F17/22GK1862526SQ200610089359
      公開日2006年11月15日 申請日期2006年6月21日 優(yōu)先權日2006年6月21日
      發(fā)明者唐英敏, 李明, 高志青 申請人:北京大學, 北京北大方正電子有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1