1. 程式人生 > >點陣字型檔HZK12 HZK16 HZK24 ASC12 ASC16 簡介 及 使用方法[附原始碼]

點陣字型檔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(不顯示),並不影響顯示效果。

相關推薦

點陣字型檔HZK12 HZK16 HZK24 ASC12 ASC16 簡介 使用方法[原始碼]

如何在嵌入式系統中使用大量的漢字和字元呢?         DOS前輩們經過艱辛的努力,將製作好的字模放到了一個個標準的庫中以免去後輩的麻煩,這就是點陣字型檔檔案。         一般我們使用16*16的點陣宋體字型檔,所謂16*16,是每一個漢字在縱、橫各16點的區域內顯示的。不過後來又有了HZK12、H

Qt中通過設定點陣圖掩碼生成異形控制元件【原始碼

註釋:轉載的這篇部落格適用於不規則按鈕,目標區域外的透明部分點選無作用,目標區域內的透明部分點選有效果,當然設定按鈕掩碼所使用的圖片目標區域都是不透明的! 以下步驟是以按鈕為例,其他控制元件類似 ①在QtDesigner中拖出一個按鈕或者在程式中生成

16*16點陣字型檔HZK16的使用

#include <stdio.h>   #include <stdlib.h>   void getHZCode(unsigned char incode[], unsigned char hzCode[]);   int main()   {       //http://www.

16/24點陣字型檔(經典)

      最近重新找了一下C語言的資料,深深的被c語言的底層操作特性迷戀~。在這方面,最經典的一本書莫過於清華大學出版社的《C高階實用程式設計》(王士元),在C語言高階應用領域裡這是我見過的寫的最好的一本書,非常可惜的這本書現在已經絕版了(可能是因為技術發展和更新的太快),在書店裡網上都無法買到了。記得本科

python簡介基礎入門 day1

blog 美女 顯示 中文 公開 wid 能開 程序 cnblogs    一、python介紹: Python是一種解釋型、面向對象、動態數據類型的高級程序設計語言。 Python由Guido van Rossum於1989年底發明,第一個公開發行版發行於1991年

LDAP簡介LDAP服務器的安裝與配置

默認 access 目的 ani pro sta 目錄服務 unit onf 一、LDAP簡介 全稱:Lightweight Directory Access Protocol,目錄服務是一種特殊的數據庫系統,其專門針對讀取。 LDAP目錄中的信息是按照樹型結構組織,具體信

SOA 服務架構之簡介理解

時代 底層原理 需要 松耦合 hit 面向服務 ges 都在 觀察 也許你已經深入其中卻不知,今天我們撥開雲霧見月明,闡明SOA是何方神聖! SOA 英文:Service-Oriented Architecture,面向服務的架構。 是一種面向通用集成服務的、松耦合的架構

maven 之maven簡介安裝

分享 運行 項目信息 ava 信息 專家 not 編碼 bin 1. maven:行內,專家。基於java的項目構建功能,依賴管理,項目信息管理,Maven是一個項目構建工具。 2.構建:指日常開發中經常完成的除了編碼外的一些動作。如:清理,編譯,測試,運行,報告,部署等動

redis 之 redis簡介下載安裝

移動 持久化 文檔 acl inf zxvf osql .cn ted 1. 數據庫的分類:關系型數據庫,非關系型數據庫(Nosql) 2.非關系型數據庫: 鍵值型數據庫:redis 等。 列式存儲數據庫: hbase 等。 文檔型數據庫 : mongoDB 等。 圖形數

Linux目錄簡介哲學思想

第三方軟件 文件夾 配置文件 操作系統 二進制 /頂級目錄自引導/root 超級用戶家目錄/sys存放系統硬件信息/opt 第三方軟件安裝目錄/proc 存放進程的文件目錄,是虛擬文件夾不在硬盤中存放/sbin 二進制文件目錄/usr 存放二進制程序和一些系統相關的文件/home

SQLyog簡介及其功能(百度雲盤下載地址)

++ 基本 記錄 導出 對數 簡介 sam 接口 管理 一、軟件簡介   SQLyog 是一個快速而簡潔的圖形化管理MYSQL數據庫的工具,它能夠在任何地點有效地管理你的數據庫。SQLyog是業界著名的Webyog公司出品的一款簡潔高效、功能強大的圖形化MySQL數據庫管

【轉】Nodejs學習筆記(一)--- 簡介安裝Node.js開發環境

ack 目錄 javascrip 難度 時間 網站開發 clas jetbrains 常用 目錄 學習資料 簡介 安裝Node.js npm簡介 開發工具 Sublime Node.js開發環境配置 擴展:安裝多版本管理器 學習資料   1.深入淺出Node.j

C++ 泛型程序設計與STL模板庫(1)---泛型程序設計簡介STL簡介與結構

urn 向上 隊列 是把 鏈表 需要 input stack 特定 泛型程序設計的基本概念 編寫不依賴於具體數據類型的程序 將算法從特定的數據結構中抽象出來,成為通用的 C++的模板為泛型程序設計奠定了關鍵的基礎 術語:概念 用來界定具備一定功能的數據類型。例如:

交換機的簡介數據通信過程,子網掩碼路由基礎

交換機 數據通信 過程 交換機1.什麽是交換機?交換機(Switch)意為“開關”是一種用於電(光)信號轉發的網絡設備。它可以為接入交換機的任意兩個網絡節點提供獨享的電信號通路。最常見的交換機是以太網交換機。簡單地說:交換機用來共享一根網線,路由器用來共享一個IP。也就是說,如果一根網線上想接幾個

while與do while 區別 for循環的簡介break和continue的區別

停止 alt 執行c light div type 結構 輸入 n) do while 循環和while循環的區別 1、do while循環是先執行循環體,然後判斷循環條件,如果為真,則執行下一步循環,否則終止循環; while循環是先判斷循環條件,如果條件為真則

Day47:HTML(簡介常用標簽)

back tar one cli 搜索 meta標簽 ges 總結 images 一、HTML簡介 html是什麽? 超文本標記語言(Hypertext Markup Language,HTML)通過標簽語言來標記要顯示的網頁中的各個部分。一套規則,瀏覽器認識的規則。 瀏

JS/JavaScript簡介基本常識

標記 非模態 ava javascrip ron 窗口 模式 賦值 窗體 JavaScript   (JS)以客戶端事件為驅動的弱類型腳本語言   JS腳本一般寫在<head>內部   流:文本流、html流   回避關鍵字的基本策略:單詞合並(v_fu

Mysql Group Replication 簡介單主模式組復制配置【轉】

ror ipv4 mysql命令 value tail force action dmi where 一 Mysql Group Replication簡介 Mysql Group Replication(MGR)是一個全新的高可用和高擴張的MySQL集群服務。

TypeHandler簡介配置(mybatis源碼篇)

java rtt 當我 mes ons byte[] throws call dstat 作者:南柯夢 Mybatis中的TypeHandler是什麽?   無論是 MyBatis 在預處理語句(PreparedStatement)中設置一個參數時,還是從結果集中取出一

ES6(簡介常用)-下

所有 對象的引用 上下 組合 代碼 ext 回收 .html 布爾值 八、Iterator 和 for of 值遍歷(谷歌瀏覽器無) 1、Iterator(遍歷器)的概念 JavaScript 原有的表示“集合”的數據結構,主要是數組(Array)和對象(Obje