這兩天在看矢量字庫相關(guān)文檔,整理下。
收集知識:
1.
漢字庫是任何漢字操作系統的重要組成部分。字庫又有點(diǎn)陣字庫、矢量字庫和曲線(xiàn)字
庫之分。矢量字庫又分為單線(xiàn)體、筆劃輪廓體、純輪廓體、多線(xiàn)體。矢量字庫是以圖形信
息建庫的,每個(gè)漢字由若干筆劃或筆劃的連通體組成,庫中存放的即是這些線(xiàn)段的端點(diǎn)坐
標, 由于每個(gè)筆劃的折線(xiàn)數不一樣,每個(gè)字的筆劃數也不同+漢字在庫中所占的長(cháng)度是不
相等的。因此定位方法與點(diǎn)陣字庫定位方法不同。漢字字形輸出時(shí),經(jīng)常進(jìn)行各種變換,如
平移、縮放、旋轉、傾斜、投影等,利用矢量或曲線(xiàn)字庫,算法簡(jiǎn)單、速度快、失真小,因
此效果好,可以產(chǎn)生高質(zhì)量的漢字輸出。所以,目前流行的漢字操作系統如ucDOs3.x、A—
CIOS3.X、xsdos6.OF等均采用矢量字庫存儲漢字字形數據
2.矢量字庫的總體結構
矢量字庫共分三個(gè)區域,它們是:(1)索引表區 該區共有6768個(gè)表項,每個(gè)表項由
6個(gè)字節構成,前4個(gè)字節表示該表項對應漢字字形在庫中的絕對偏移地址,后兩個(gè)字節為
組成該漢字字形數據的字節數。(2)空白區:該區每個(gè)字節為0。(3)字形數據區:在字形
數據區中,存放各漢字的字形數據,字形數據由若干筆劃數據構成,每個(gè)筆劃數據由一個(gè)
多邊形構成,其數據組織表現為多邊形起點(diǎn)以及標識符和相鄰點(diǎn)問(wèn)的相對位置,字形數據
以壓縮形式存貯。
3.數據區結構及字形還原算法
在數據區中采用壓縮算法描述字形數據,每個(gè)漢字字形由若干筆劃數據構成,每個(gè)筆
劃數據由一個(gè)多邊形構成,每個(gè)多邊形由一個(gè)起點(diǎn)字節及該多邊形相鄰點(diǎn)字節構成 。 其結
構如下:
漢字字形— — E 數據 —‘ —Llr相起鄰點(diǎn)字掌節 構成每個(gè)筆劃多邊形的數據中,起點(diǎn)字節也是終點(diǎn)字節,其余字節是與前一字節上下文相關(guān)字節,存貯了壓縮標識符、位移方向和位移量 標識碼op占兩位,位于字節的高端
即7、6位,共有4種狀態(tài):00、01、10、11,每種狀態(tài)后面跟隨不同的編碼。
思路大概是:
1.獲取矢量字庫
2.獲取對應字的圖形信息:字符在字庫中的對應的offset 位置,起點(diǎn)位置,相鄰點(diǎn)的位置等 比如一撇,可以由幾個(gè)點(diǎn)連起來(lái)
3.
將矢量字庫中字模的信息(起點(diǎn),相鄰點(diǎn),方向)通過(guò)算法導入到一個(gè)128*128的buf中,即形成一個(gè)點(diǎn)陣。
4.將128*128的點(diǎn)陣畫(huà)出來(lái)。
后續完善。。。
相關(guān)有用文章:
根據所選擇的 TrueType 字體生成點(diǎn)陣數據
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。