UCDOS中的點陣字型檔HZK12,HZK16,HZK24,ASC12,ASC16)

來源:互聯網
上載者:User

原文:http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380147780914c34c3933fc239045c3738beee3a241706d9c67d6606ab540faaa16c2973543db799ca8c57dfbf8f2b2f9524367a1c874316c419d891007a9f34d507a9f916b4fba12592ded1d7&p=9c77c64ad2934ea853b4c5125f0a&user=baidu,本來是要開啟網址,但網址打不開了,只好把百度的搜尋地址寫出來UCDOS中的點陣字型檔HZK12,HZK16,HZK24,ASC12, ASC16        如何在嵌入式系統中使用大量的漢字和字元呢?
        DOS前輩們經過艱辛的努力,將製作好的字模放到了一個個標準的庫中以免去後輩的麻煩,這就是點陣字型檔檔案。
        一般我們使用16*16的點陣宋體字型檔,所謂16*16,是每一個漢字在縱、橫各16點的地區內顯示的。不過後來又有了HZK12、HZK24,HZK32和HZK48字型檔及黑體、楷體和隸書字型檔。雖然漢字型檔種類繁多,但都是按照區位的順序排列的。前一個位元組為該漢字的區號,後一個位元組為該字的位號。每一個區記錄94個漢字,位號則為該字在該區中的位置。
        因此,漢字在漢字型檔中的具體位置計算公式為:94*(區號-1)+位號-1。減1是因為數組是以0為開始而區號位號是以1為開始的。這僅為以漢字為單位該漢字在漢字型檔中的位置,那麼,如何得到以位元組為單位得到該漢字在漢字型檔中的位置呢?只需乘上一個漢字字模佔用的位元組數即可,即:(94*(區號-1)+位號-1)*一個漢字字模佔用位元組數,而按每種漢字型檔的漢字大小不同又會得到不同的結果。以16*16點陣字型檔為例,計算公式則為:(94*(區號-1)+(位號-1))*32。漢字型檔文該從該位置起的32位元組資訊即記錄了該字的字模資訊。
         
☆列印字型檔檔案和HZK12
        如果你有UCDOS的HZK24S(宋體)、HZK24K(楷體)或HZK24H(黑體),你還可以使用不同字型的大字模漢字了。HZK24系列是24*24的點陣字型檔,每字模佔用3*24位元組。如果你按照HZK16的顯示方法的話,你會看到......呵呵,字被放倒了。這是因為該類字型檔與一般的漢字型檔不同,這類大字模漢字型檔是專供列印的列印字型檔,為了列印的方便將字模都放倒了,你使用時,只要將字模的位資訊縱橫轉置顯示即可。例如你如果定義為mat[24][3]則應該這樣輸出:
         for(i=0;i<24;i++)
              for(j=0;j<24;j++)
                  if((0x80>>i%8)&mat[j][i/8]) /*轉置顯示*/
                       putpixel(j+x,y+i,color);
  還有一類字型檔HZK12,雖然屬於標準字型檔類型,但如果你將它的字模當作12*12位計算的話,根本無法正常顯示漢字。因為字型檔設計者為了使用的方便,字摸每行的位元均補齊為8的整數倍,於是實際該字型檔的位長度是16*12,雖然每行都多出了4位,但這4位都是0(不顯示),並不影響顯示效果。

  作者:sunv 閱讀() 評論()  編輯 發表於:2005-09-23 15:11

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.