版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第24卷第4期云南農(nóng)業(yè)大學(xué)學(xué)報Vol 124No 142009年7月Journal of Yunnan Agricultural University Jul .2009收稿日期:2008-03-29修回日期:2008-09-223基金項(xiàng)目:云南農(nóng)業(yè)大學(xué)學(xué)生科技創(chuàng)新創(chuàng)業(yè)行動基金項(xiàng)目(NDF010。作者簡介:霍艷忠(1977-,男,吉林省柳河縣人,講師,在讀碩士研究生,主要從事微型計算機(jī)控制方面的研究。E -mail:hyz071581261com 。33通訊作者Corres ponding author:鄭永春,男,云南保山人,教授,碩士生導(dǎo)師,主要從事農(nóng)業(yè)工程研究。E -mail:aiy50
2、55s ohu 1com ?;赪 indo ws 字庫的點(diǎn)陣數(shù)據(jù)提取方法3霍艷忠1,2,牛國玲3,鄭永春133,張?zhí)祉?(1.云南農(nóng)業(yè)大學(xué)工程技術(shù)學(xué)院,云南昆明650201;2.佳木斯大學(xué)信息電子技術(shù)學(xué)院,黑龍江佳木斯154007;3.佳木斯大學(xué)機(jī)械工程學(xué)院,黑龍江佳木斯154007摘要:基于編程軟件Del phi ,介紹并實(shí)現(xiàn)了一種從W indows 字庫中提取字體信息,并將其轉(zhuǎn)換為點(diǎn)陣數(shù)據(jù)的方法。通過使用W indows 的AP I 函數(shù)此方法共分2步,第1步從字庫中提供字體數(shù)據(jù)并輸出到位圖,第2步從位圖中提取點(diǎn)陣數(shù)據(jù)。關(guān)鍵詞:Del phi;點(diǎn)陣數(shù)據(jù);字庫中圖分類號:TP 39111文
3、獻(xiàn)標(biāo)識碼:A 文章編號:1004-390X (200904-0626-004Based on W i n dows Font L i brary Pi cki n g up Pi xel Dat a of W ordHUO Ya n 2zhong1,2,N I U G uo 2ling 3,ZH EN G Yong 2c hun 1,ZHAN G Tia n 2s hun1(1.Collgege of Engineering and Technol ogy,Yunnan Agricultural University,Kun m ing 650201,China;2.College of I
4、nf or mati on Science and Electr onic Technol ogy,J ia musi University,J ia musi 154007,China;3.College ofM echanical Engineering,J iamusi University,J ia musi 154007,China Abstract:I n this paper,based on Del phi ,a method of p icking up p ixel data of word fr o m W indo ws f ont li 2brary was intr
5、 oduced and i m p le mented .By using API functi ons,this method could be divided int o2steps :(1getting data f orW indo ws f ont library and putting it on bit m ap;(2picking pixel data f or m bit m ap.Key words:Del phi;p ixel data;f ont library隨著計算機(jī)硬件技術(shù)的不斷進(jìn)步和軟件功能的不斷強(qiáng)大,在計算機(jī)上顯示漢字的問題已經(jīng)得到了圓滿地解決。但對于單片機(jī)系
6、統(tǒng)和嵌入式系統(tǒng),如何高效、迅速地顯示漢字仍然是一個有待進(jìn)一步解決的問題?,F(xiàn)今,以液晶、大規(guī)模LED 等為核心的顯示產(chǎn)品應(yīng)用得越來越普遍,而這些產(chǎn)品的后臺處理器通常是單片機(jī)或嵌入式芯片。由于受單片機(jī)或嵌入式芯片處理速度、硬件規(guī)模等的限制,要求在這些系統(tǒng)上使用一些高效、快捷的顯示策略。針對單片機(jī)系統(tǒng)和嵌入式系統(tǒng)的特點(diǎn),人們制定了各種顯示漢字的方法,如“標(biāo)準(zhǔn)字”1法。該方法是將整個字庫先寫到程序存儲器中,然后使用與計算機(jī)相同的方法從字庫中檢索文字。此方法的優(yōu)點(diǎn)是軟件容易編寫,但是由于字庫較大,一般會超過單片機(jī)的尋址能力,需要采取一些特殊的手段才能使用。除此之外,還有“固化顯示字?!?法、“建立帶索引
7、的小字庫”1法和比較先進(jìn)的“漢字動態(tài)編碼”1法等,這些方法都可以縮小字庫的體積,但前兩種方法都要對存儲器進(jìn)行繁瑣的規(guī)劃及復(fù)雜的查詢運(yùn)算,這對單片機(jī)系統(tǒng)和嵌入式系統(tǒng)的運(yùn)行速度是個很大的考驗(yàn)。無論是“動態(tài)編碼”1法還是“固化顯示字模”1法,都需要先獲得漢字(或字母的點(diǎn)陣數(shù)據(jù)。為了使用“動態(tài)編碼”1法等,可以從UC2 DOS的字庫文件中獲取點(diǎn)陣數(shù)據(jù),但這樣做的一個最大的弊端就是:字體嚴(yán)重受限且點(diǎn)陣數(shù)固定,這對產(chǎn)品的顯示效果會有很大的影響。W indow s支持多種字庫格式,如TTF,FON, TTC等,這些字庫含有豐富的字體式樣,利用W indow s的AP I函數(shù)可以對文字的點(diǎn)陣數(shù)進(jìn)行隨意放縮。針
8、對具體的產(chǎn)品,可以設(shè)計具有獨(dú)特字體樣式的字庫。從W indow s字庫中提取點(diǎn)陣信息,可以極大地豐富顯示內(nèi)容,帶來生動的顯示效果,這對顯示產(chǎn)品的開發(fā)與應(yīng)用非常有宜。下文基于編程軟件Del phi介紹一種從W in2 dows字庫中提取點(diǎn)陣數(shù)據(jù)的方法。此方法不僅可以從W indows字庫中提取漢字字模,還可以提取非漢字文字的字模。1提取思路及相關(guān)函數(shù)111提取的思路W indows的AP I函數(shù)庫中有豐富的字體操作函數(shù),基于這些AP I函數(shù),本文介紹的這種提取方法總體上分為兩大步:第1步先將需要的文本信息從所選的字庫文件中提取出來,并將其輸出到位圖上;第2步對第1步中得到的位圖進(jìn)行逐點(diǎn)地轉(zhuǎn)換,進(jìn)
9、而得到點(diǎn)陣數(shù)據(jù)。在這2步中,第1步需要使用AP I函數(shù)與W indows操作系統(tǒng)進(jìn)行交互;而第2步則對圖像進(jìn)行處理。Del phi封裝了許多圖像操作函數(shù),這些函數(shù)使我們對圖像的操作變得簡單、容易。112相關(guān)的AP I函數(shù)下面對這種提取方法中用到的幾個關(guān)鍵的函數(shù)作以簡要的介紹。11211CreateFont函數(shù)CreateFont2函數(shù)是W indows AP I函數(shù)庫中一個比較有用的函數(shù)。正如它的名字一樣,這個函數(shù)用于創(chuàng)建邏輯字體。在調(diào)用這個函數(shù)時,我們可以通過相應(yīng)的參數(shù)指定所創(chuàng)建字體的基礎(chǔ)字符集、基礎(chǔ)字庫、字體寬高等特征。這個函數(shù)的原型如下:HF ONT CreateFont(int nHe
10、ight,int n W idth, int nEscape ment,int nO rientati on,int fn W eight, DWORD fdw Italic,DWORD fd wUnderline, DWORD fdwStrike Out,DWORD fdwCharSet, DWORD fdwOut putPrecisi on,DWORD fd wCli pPreci2 si on,DWORD fd wQuality,DWORD fd wPitchAnd2 Fa m ily,LPCTST R l p szFace;其中一些主要參數(shù)的含意如下:nHeight:字體的高度n W
11、idth:字體的寬度fn W eight:字體的粗細(xì)fd w Italic和fdwUnderline:字體是否傾斜和是否有下劃線fd wCharSet:字體使用的字符集l p szFace:基礎(chǔ)字體的名稱下一小節(jié)將給出Del phi中的使用代碼。11212Select O bject函數(shù)在D elphi中基于C reateFont函數(shù)可以創(chuàng)建一個字體對象,而這個對象必須與具體的設(shè)備關(guān)聯(lián)才能使該設(shè)備具有字體對象的字體特征。Select O bject2,3函數(shù)可以使字體對象與一個設(shè)備句柄相關(guān)聯(lián)。這樣,就可以直接向這個設(shè)備輸出文字,而設(shè)備會自動使用所關(guān)聯(lián)的字體樣式去格式化這些文字。Select O
12、 bject函數(shù)的原型如下:HG D I O BJ Select O bject(HDC hdc,HG D I O BJ hgdi obj;其中:hdc:設(shè)備句柄hgdi obj:字體對象11213Delete Object函數(shù)Delete Object2,3函數(shù)用于釋放字體對象。函數(shù)原型為:BOOL Delete Object(HG D I O BJ hObject;其中:h O jbect:為字體對象名。11214Text O ut函數(shù)Text O ut4,5函數(shù)用當(dāng)前選定的字符、背景顏色和正文顏色將一個字符串寫到指定設(shè)備的指定位置上。函數(shù)原型為:726第4期霍艷忠,等:基于W indow
13、s字庫的點(diǎn)陣數(shù)據(jù)提取方法BOOL Text O ut(HDC hdc,int nXStart,int nYStart,LPCTST R l pString,int cbString;參數(shù)的含意如下:hdc:設(shè)備環(huán)境句柄。nXStart:指定用于字符串對齊的基準(zhǔn)點(diǎn)的邏輯X坐標(biāo)。nYStart:指定用于字符串對齊的基準(zhǔn)點(diǎn)的邏輯Y坐標(biāo)。cbString:字符串的字符數(shù)。l pString:指向?qū)⒈焕L制字符串的指針。此字符串不必以0結(jié)束,因?yàn)閏bString中指定了字符串的長度。2提取方法的實(shí)現(xiàn)211從字庫中提取數(shù)據(jù)下面這段代碼將文字按照指定的字體樣式輸出到位圖的畫布上。Functi on GetFo
14、ntPoints(Text:String;Total L ine2 Nu m,T otal Col N um:I nteger;AFont N a me:String;XOffSet,Y OffSet:I nteger;var FontPoints:Font2 Points Data;Is Multi L ine:Boolean=False;Z oomScale L ine:Real=110;Z oomScaleCol:Real =110;SaveT oBmpPath:String=;CharSets:DWord=G B2312_CHARSET: String;varTe mpBmp:T B
15、it m ap;DC:HDC;TheFont:HFont; i,j:I nteger;beginTe mpBmp:=T B it m ap.Create;Te mpBmp.Pixel2 For mat:=pf8bit5;Te mpBmp.Height:=Total L ine Nu m;Te mpBmp. W idth:=T otal Col N u m;TheFont:=CreateFont(Trunc(Z oomScale L ine3 Total L ine Nu m,Trunc(ZoomScaleCol3Total Col N umdiv2,0, 0,400,0,0,0,CharSet
16、s,Out_Default_Precis,Cli p_Default_Precis,Default_Quality,Default_ Pitch OR FF_SCR I PT,Pchar(AFont N a me;Select O bject(DC,TheFont;/下面這一行用指定的字體樣式向位圖的畫布上輸出文字Text O ut(DC,XOffSet,Y OffSet,Pchar (Text,Length(Text;.end;212點(diǎn)陣化處理下面這段代碼從含有文字圖樣的畫布上提取點(diǎn)陣數(shù)據(jù)。Set L ength6,7(FontPoints,Total L ine Nu m, T otal
17、Col N u m;Result:=;f or i:=0t o T otal L ine Num21dobeginif(Result<>and(Is Multi L inethen Re2 sult:=Result+#10;f or j:=0t o T otal Col N um-1dobeginFontPointsi,j:=1;Result:=Result+1;endelsebeginFontPointsi,j:=0;Result:=Result+0;end;end;Te mpBmp.Free;Delete Object(TheFont;(1213程序流程圖整個提取方法的邏輯比較
18、清晰。提取算法的流程圖如圖1所示。214應(yīng)用范例應(yīng)用本文所介紹的方法并結(jié)合單片機(jī)系統(tǒng)開發(fā)的經(jīng)驗(yàn),作者已制作出實(shí)際的提模工具,其運(yùn)行界面如圖2所示。3結(jié)束語正如前文所述,漢字提模及顯示方法有多種,實(shí)現(xiàn)起來難度各異,本文只介紹并實(shí)現(xiàn)了其中的一種。經(jīng)作者實(shí)際驗(yàn)證,該方法可靠、可行。826云南農(nóng)業(yè)大學(xué)學(xué)報第24卷 此方法中,由于先將字模信息輸出到了位圖,所以在轉(zhuǎn)換為點(diǎn)陣數(shù)據(jù)之前,可先利用Del phi 中的位圖操作函數(shù)對字模進(jìn)行操作,然后再轉(zhuǎn)換,這樣可極大地非富顯示效果。W indows 作為一種主流的操作系統(tǒng),提供了非富的資源。在搞產(chǎn)品研發(fā)時,首選的就是盡量利用W indows 中已有的資源。W indows 強(qiáng)大的AP I 函數(shù)庫也最大限度地滿足了需求。參考文獻(xiàn)1陳平曉.點(diǎn)陣LCD 驅(qū)動顯控原理基礎(chǔ)版M .北京:電子工業(yè)出版社,2007.2王華.Del phi 5編程實(shí)例與技巧M .北京:機(jī)械工業(yè)出版社,2000:167-175.3張嶺,宋坤.Del phi 程序開發(fā)范例寶典M .北京:人民郵電出版社,2006:128-183.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度跨境電商倉儲租賃合同合法經(jīng)營拓展全球市場4篇
- 二零二五年度建筑工地鋼筋施工安全培訓(xùn)合同
- 二零二五版網(wǎng)絡(luò)短視頻剪輯師招聘合同范本3篇
- 二零二五年度建筑用沙子購銷及環(huán)保審計合同3篇
- 2025年皮包原材料進(jìn)口合同二零二五年度版4篇
- 二零二五年度拍賣會籌備及組織服務(wù)合同4篇
- 2025年度牛羊肉品牌保護(hù)及侵權(quán)糾紛處理合同
- 二零二五年度內(nèi)墻抹灰工程質(zhì)量監(jiān)督合同范例
- 二零二五版摩托車二手車交易評估與收購合同4篇
- 2025年建筑物清潔與智能安防系統(tǒng)維護(hù)合同3篇
- 2024-2025學(xué)年北京石景山區(qū)九年級初三(上)期末語文試卷(含答案)
- 第一章 整式的乘除 單元測試(含答案) 2024-2025學(xué)年北師大版數(shù)學(xué)七年級下冊
- 春節(jié)聯(lián)歡晚會節(jié)目單課件模板
- 中國高血壓防治指南(2024年修訂版)
- 糖尿病眼病患者血糖管理
- 抖音音樂推廣代運(yùn)營合同樣本
- 教育促進(jìn)會會長總結(jié)發(fā)言稿
- 北師大版(2024新版)七年級上冊數(shù)學(xué)第四章《基本平面圖形》測試卷(含答案解析)
- 心理調(diào)適教案調(diào)整心態(tài)積極應(yīng)對挑戰(zhàn)
- 小學(xué)數(shù)學(xué)6年級應(yīng)用題100道附答案(完整版)
- 噴漆外包服務(wù)合同范本
評論
0/150
提交評論