網友評分: 4.7分
PCtoLCD2002完美版是一款非常好用的字模提取工具,軟件具有操占用空間小、方便攜帶的特點,除了取字模外,用戶還可以選擇系統預設的C語言和匯編語言兩種格式,由你自定義新的數據輸出格式,每行輸出數據個數可調整。
【生成自定義的小字庫】
使用PCTOLCD的各種調整功能調整出您需要的文字樣式,如字體,字樣(下劃,傾斜,加粗),大小(各種點陣大小的字體,可鎖定點陣本身大小(如16*16),然后在這個固定的點陣大小內調節文字的大小(例如在16*16的點陣中居中顯示12*12大小的漢字)
1、將您需要的漢字和符號集中形成一個文本文件
2、使用“導入文本”的按鈕
3、建議選中"生成索引文件"
4、點“開始生成”按鈕,選擇生成的字庫文件名
5、然后耐心等待一段時間(與處理文本大小有關),在此期間建議不要動鍵盤和鼠標。
6、字庫生成完畢;
【生成的索引文件】
生成國標一二級漢字庫(生成的文件,包含了日常需要的所有字符、漢字,生成的文件大概1.3MB)
使用PCTOLCD的各種調整功能調整出您需要的文字樣式,如字體,字樣(下劃,傾斜,加粗),大小(各種點陣大小的字體,可鎖定點陣本身大小(如16*16),然后在這個固定的點陣大小內調節文字的大小(例如在16*16的點陣中居中顯示12*12大小的漢字).
1、使用“導入文本”的按鈕
2、點右下角"生成國標漢字庫"按鈕.
3、選擇字庫文件名后單擊確定
4、耐心等待一段時間后既得到生成的漢字庫(時間視具體機器而定).
【重要提示】
生成漢字庫結構介紹
本軟件使用的漢字庫采用與HZK16相近似的結構,即按照輸入漢字的順序依次排列各漢字的點陣數據,以生成的16*16點陣漢字庫舉例介紹
16*16點陣漢字庫
點陣大小16*16,所以每個漢字點陣數據占用32個字節.用戶要使用生成的16*16點陣小字庫中的點陣數據,可以在程序中采用如下算法:
0.在生成的字庫漢字列表中得到該漢字的偏移量,也就是漢字的記錄號HzNum
1.將其*32(HzNum*32)即可得出該漢字點陣在字庫中的偏移地址.
3.以這個偏移地址為起點,連續讀取文件中的32個字節,既為該漢字的點陣信息.
實際上,對于本軟件生成的16*16點陣的國標漢字庫是采用區位碼排列的,所以與標準的HZK16結構是一樣的,完全可以互換使用.
例如生成一個24*48點陣,楷體,傾斜的漢字庫,
0.由于每個漢字占用24*48/8= 144個字節,所以用戶可先讀取生成的索引列表找到該漢字的記錄號.
1.將記錄號*144即得到該漢字在字庫中的偏移地址.
2.以這個偏移地址為起點,在字庫文件中連續讀取144個字節,即為該漢字的點陣信息.
知道了以上信息,可以在檢索字模時知道如何編程了。最后如何將字模文件用到頭文件里,如下:
同時,在編程檢索該字模文件時,編程如下:
#include "GB1616.h" //16*16漢字字模
void PutGB1616(unsigned short x, unsigned short y, unsigned char c[2], unsigned int f,unsigned int b)
{
unsigned int i,j,k;
LCD_SetArea(x, y, x+16-1, y+16-1);
for (k=0;k<22;k++) {
if ((codeGB_16[k].Index[0]==c[0])&&(codeGB_16[k].Index[1]==c[1])){
for(i=0;i<32;i++) {
unsigned short m=codeGB_16[k].Msk[i];
for(j=0;j<8;j++) {
if((m&0x80)==0x80) {
LCD_Write_Data(f>>8);
LCD_Write_Data(f);
}
else {
LCD_Write_Data(b>>8);
LCD_Write_Data(b);
}
m<<=1;
}
}
}
}
}