點(diǎn)陣字庫(kù)的生產(chǎn)原理_第1頁(yè)
點(diǎn)陣字庫(kù)的生產(chǎn)原理_第2頁(yè)
點(diǎn)陣字庫(kù)的生產(chǎn)原理_第3頁(yè)
點(diǎn)陣字庫(kù)的生產(chǎn)原理_第4頁(yè)
點(diǎn)陣字庫(kù)的生產(chǎn)原理_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、點(diǎn)陣字體點(diǎn)陣字體生產(chǎn)原理點(diǎn)陣圖字體概觀在DOS程序中使用點(diǎn)陣字體.點(diǎn)陣字體和向量字體的區(qū)別如何使用Windows系統(tǒng)字體.生成unicode中文點(diǎn)陣字體.套用點(diǎn)陣字體標(biāo)準(zhǔn)點(diǎn)陣字體籌碼標(biāo)準(zhǔn)點(diǎn)陣字體芯片的種類及應(yīng)用51單籌碼1314點(diǎn)陣縮小碼漢卡標(biāo)準(zhǔn)點(diǎn)陣漢字字體籌碼點(diǎn)陣字體生產(chǎn)原理所有漢字或英語(yǔ)的原理如下。從左到右,每8點(diǎn)占用一個(gè)字節(jié),最后,小于8個(gè)字節(jié)的字節(jié)占用一個(gè)字節(jié),按最高到最低的位排序。生成的字體說(shuō)明: (示例1212)漢字所占用的字節(jié)數(shù):128=14占212=24字節(jié)。編碼排序A0A0A0FE A1A0A2FE按順序排序。例如,以1212字體中的“我”為例,“我”的編碼為CED2,因此在

2、漢字中,CEH-AOH=2EH區(qū)域的D2H-A0H=32H。因此,1212字形的起始位置是FE-A0*2EH 32H*24=起始24字節(jié)就是我的位圖模具。其他類推就可以了。英語(yǔ)圓點(diǎn)矩陣也是這樣推理的。如何在DOS程序中使用位圖字體首先需要理解的是點(diǎn)陣字體是存儲(chǔ)所有字符的點(diǎn)陣數(shù)據(jù)的數(shù)據(jù)文件。什么是點(diǎn)陣,我認(rèn)為沒(méi)有說(shuō)大家都知道的,而是使用了“文谷城”等電子詞典。那個(gè)液晶顯示器上顯示的男子漢可以清楚地看到“點(diǎn)陣”的痕跡。PC機(jī)上也是如此。位圖、矩陣和位圖這三個(gè)茄子概念在本質(zhì)上是相關(guān)的。在某種程度上,三種牙齒是同義詞。光柵本質(zhì)上是單色位圖,他使用位表示點(diǎn),位0表示位置上沒(méi)有點(diǎn),位1表示位置上沒(méi)有點(diǎn)。矩

3、陣和位圖是緊密連接的二維數(shù)組。位圖是牙齒的二維數(shù)組。牙齒陣列中(x,y)位置的數(shù)據(jù)表示通過(guò)對(duì)原始圖形進(jìn)行采樣而量化的顏色值。但是另一方面,我們要面對(duì)的問(wèn)題是計(jì)算機(jī)的數(shù)據(jù)存儲(chǔ)都是一維的,線性的。因此,我們必須使二維數(shù)據(jù)線性化。那么位圖字的數(shù)據(jù)存儲(chǔ)細(xì)節(jié)究竟是什么呢?其實(shí)很簡(jiǎn)單。例如,16*16的位圖,即每行16個(gè)點(diǎn)。一個(gè)點(diǎn)使用位表示1,牙齒位的值為1表示有一些牙齒位置,牙齒位的值為0表示牙齒位置,8位表示一個(gè)字節(jié)。也就是說(shuō),在牙齒光柵中,一行中的數(shù)據(jù)必須有兩個(gè)字節(jié)。第一行的前八個(gè)點(diǎn)的數(shù)據(jù)存儲(chǔ)為光柵數(shù)據(jù)的第一個(gè)字節(jié),第一行的最后八個(gè)點(diǎn)的數(shù)據(jù)存儲(chǔ)為光柵數(shù)據(jù)的第二個(gè)字節(jié),第二行的前八個(gè)點(diǎn)的數(shù)據(jù)存儲(chǔ)為光柵

4、數(shù)據(jù)的第三個(gè)字節(jié)。| | 1 | | | | | | | | | | | 1 | | | | | 1 | 1 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | | | | | 1 | | | | | | | | | | 1 | | | | 1 | | | | | 1 | | | | | | 1 | | | | | | | | 1 | 1 | | | 1 | | | | | | | 1 | | | | | 1 | | | 1 | | | | | | 1 | | | | | | | | | | | | | 1 | | 1 | |

5、 1 | | | 1 | | | 1 | | | | | | | | 1 | | | 1 | | 1 | | 1 | | | | | | | 1 | | | | 1 | | 1 | | 1 | | | | | | 1 | 1 | 1 | | | | | | 1 | | | | | | | | | | | 1 | | | | 1 | | 1 | | 1 | | | | | | | 1 | | | | 1 | | | | 1 | | 1 | | | | | | 1 | | | 1 | | | | | | | 1 | | | | | 1 | | 1 | | | | | | 1 | 1 | | | |

6、 | 1 | | | | | | | | | | | 1 | | | | | | | | | | | | | | | | | | | | |??梢?jiàn)這是“一”字的光柵。當(dāng)然,文本的方式效果不好。根據(jù)以上原則,可以寫(xiě)入牙齒光柵的光柵數(shù)據(jù):0x40、0x08、0x37、0xfc、0x10、0x08。當(dāng)然還有不規(guī)則光柵。這里說(shuō)的不規(guī)則性意味著光柵的寬度不是8的倍數(shù)。例如,raster(例如12*12中的raster)如何存儲(chǔ)?事實(shí)上,也很簡(jiǎn)單。每行的前八個(gè)點(diǎn)保存在一個(gè)字節(jié)內(nèi),每行的其馀四個(gè)點(diǎn)使用一個(gè)字節(jié)。也就是說(shuō),剩馀的4個(gè)點(diǎn)占用1字節(jié)的4位高,不使用牙齒字節(jié)的低4位,全部默認(rèn)為0理解了上面說(shuō)的之后,

7、我們可以寫(xiě)一個(gè)函數(shù),顯示任何大小的光柵子形。牙齒函數(shù)是將寬度為W、高度為H的字形輸出到屏幕上的(x,y)坐標(biāo)。文字的顏色為color,文字的點(diǎn)陣式資料為pdata指向的:/*輸出字形的函數(shù)*/Void _ draw _ model (char * pdata,int w,int h,int x,int y,int color)int I;/*控制行*/int j;/*控制每行中的8個(gè)點(diǎn)*/int k;/*一行中的第一個(gè)“8點(diǎn)”*/Int NC/*到點(diǎn)陣資料的前幾個(gè)位元組*/Int cols/*控制欄*/Bytestaticmask 8=128,64,32,16,8,4,2,1 ;/*位屏蔽*/

8、w=(w 7)/8 * 8;/* w重新計(jì)算*/NC=0;for(I=0);I _ Hz _ buf _ size *(ch0-1)* 94 ch1-1);Fseek(fp,offset,SEEK _ SET);/*尋址*/Fread(fontbuf,1,(w 7)/8 * h,F(xiàn)P);/*匯入點(diǎn)陣式資料*/_ draw _ model (fontbuf,w,h,x,y,color);/*繪制字體*/上面介紹的中文點(diǎn)陣字體的原理,當(dāng)然還有英語(yǔ)點(diǎn)陣字體。英語(yǔ)點(diǎn)陣字體的個(gè)別點(diǎn)陣資料儲(chǔ)存方式與中文完全相同。也就是說(shuō),我們寫(xiě)的_draw_model函數(shù)也可以用于英語(yǔ)字體。唯一的區(qū)別是點(diǎn)陣字體的尋址。英

9、語(yǔ)使用ASCII代碼英語(yǔ)光柵字體的英語(yǔ)光柵數(shù)據(jù)偏移=英語(yǔ)ASCII代碼*英語(yǔ)文字模型占用的字節(jié)數(shù)中文和英語(yǔ)區(qū)分的核心是確定一個(gè)字符是ASCII代碼還是擴(kuò)展ASCII代碼。如果是ASCII代碼,范圍為0到127,這是使用的英語(yǔ)字體,如果是擴(kuò)展ASCII代碼,則后面的另一個(gè)擴(kuò)展ASCII代碼是構(gòu)建漢字內(nèi)部代碼,以中文字體顯示。點(diǎn)陣字體和向量字體的區(qū)別我們都知道,各種各樣的字符在電腦屏幕上用幾個(gè)茄子點(diǎn)表示。因此,也稱為光柵。最古老的字體是直接存儲(chǔ)牙齒點(diǎn)。這就是光柵。常見(jiàn)的漢字光柵有16x16、24x24等。光柵也有多種,主要區(qū)別在于存儲(chǔ)代碼的方式不同。光柵最大的缺點(diǎn)是,每個(gè)字體都有固定大小的尺寸,在

10、原始大小上使用效果很好,但是放大或縮小效果很差,出現(xiàn)了我們常說(shuō)的鋸齒。需要的字體大小組合數(shù)不清,所以我們不能為每個(gè)大小定義位圖字體。所以矢量字體出現(xiàn)了。向量字型向量字型是將每個(gè)文字的筆劃分解成各種線和曲線,然后寫(xiě)下牙齒線和曲線的參數(shù),顯示時(shí),根據(jù)具體尺寸畫(huà)直線,就會(huì)恢復(fù)原來(lái)的文字。它的優(yōu)點(diǎn)是可以自由放大縮小,而不會(huì)扭曲。而且所需的存儲(chǔ)量與文字大小無(wú)關(guān)。矢量字體有很多種,就是使用他們使用的不同數(shù)學(xué)模型來(lái)說(shuō)明配置。位圖庫(kù)中的每個(gè)字符都顯示為位圖,如圖2.5所示,并以稱為文字蒙版的矩陣表示。其中,每個(gè)元素都是二進(jìn)制數(shù)。表示位1牙齒字符筆觸時(shí),像素設(shè)置為字符顏色。牙齒位0表示字符的筆觸不通過(guò)牙齒位,并

11、將像素設(shè)置為背景色。光柵文字的顯示分為兩個(gè)步驟:牙齒首先從字體中檢索位圖,然后將檢索到的位圖寫(xiě)入幀緩沖區(qū)。在實(shí)際應(yīng)用中,同一字符牙齒有多種茄子字體(如宋體、楷體等),由于每種字體都有多種茄子大小模式,字體的存儲(chǔ)空間很大。為了減少存儲(chǔ)空間,一般使用壓縮技術(shù)。矢量字符的優(yōu)點(diǎn)是記錄字符(而不是整個(gè)位圖)的筆觸信息,存儲(chǔ)空間小、美觀、變形方便。例如,使用AutoCAD中的圖形實(shí)體形狀(shape)定義矢量字符。此處,使用直線和圓弧作為默認(rèn)筆觸描述矢量文字。文字的旋轉(zhuǎn)矢量文字只需變換其幾何元素。例如,轉(zhuǎn)換直線描邊的兩個(gè)端點(diǎn),轉(zhuǎn)換圓弧的起點(diǎn)、端點(diǎn)、半徑、中心等。矢量文字的顯示也分為兩個(gè)步驟。首先從字體中獲取文字信息。然后刪除端點(diǎn)坐標(biāo),執(zhí)行相應(yīng)的幾何變換,并根據(jù)每個(gè)端點(diǎn)的標(biāo)志顯示文字。輪廓字形是當(dāng)今世界上使用最廣泛的字符表達(dá)方法,壓縮比大,確保了字符質(zhì)量。輪廓字形使用一組直線、b樣條/bezier曲線描述文字的輪廓。輪廓線構(gòu)成一個(gè)或多個(gè)封閉平面區(qū)域。通過(guò)向輪廓定義中添加控制信息(表示水平寬度、垂直寬度、基點(diǎn)和基線等)來(lái)組織文字如何使用Windows系統(tǒng)字體生成位圖字體?我的程序現(xiàn)在只能預(yù)覽漢字的不同字體的點(diǎn)陣表達(dá)。界面很

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論