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