字模提取原理主要涉及從字型檔檔案中讀取出字模數據的過程。字模是指在點陣上顯示漢字或字元時對應的編碼,例如,使用16×16點陣顯示「正」字時,點陣中的黃色高亮點對應於二進制編碼中的1,綠色低亮點對應於二進制編碼中的0。16×16點陣需要32個位元組才能達到顯示一個普通漢字的目的。
以HZK16字型檔檔案為例,該字型檔檔案符合GB2312國家標準,支持的漢字有6763個,符號682個。HZK16的GB2312-80支持的漢字有3755個(一級漢字)和3008個(二級漢字)。GB2312漢字都是由2位元組組成的,第一個位元組是區碼,第二個位元組是位碼。HZK16字型檔檔案中,漢字區碼和位碼的起始偏移量都為0xA1,因此偏移量的計算公式為:偏移量 = (94*(區碼-0xA1)+(位碼-0xA1))*32。
對於ASC16字型檔檔案,沒有區位的說法,其偏移量就是ASCII碼值。由於是ASCII字元,只占1個位元組,其寬度只有8,因此一個ASCII字元占用16*8/8=16個位元組數據。故有如下公式:偏移量 = ASCII碼值*16。
總的來說,字模的獲取就是從點陣字型檔檔案中提取出來的。例如常用的16×16點陣HZK16檔案,12×12點陣HZK12檔案等等,這些檔案包括了GB 2312字元集中的所有漢字。現在只要弄清漢字點陣在字型檔檔案中的格式,就可以按照自己的意願去顯示漢字了。