**:
win7,eclipse,mingw
ascii編碼的可列印字元是0x20~0x7e,先用執行下面這段**,生成乙個包含全部可列印字元的txt檔案:
[cpp]view plain
copy
#include
#include
int main(int argc,char *argv)
for(i=0x20;i<0x7f;i++)
return 0;
}
執行後,用記事本開啟ascii.txt檔案,會看到如下文字:
使用字模提取v2.1軟體,設定字型為宋體、12,縱向取模,位元組倒序(即高位在下)。這些設定可以根據實際情況設定。用c51格式生成字模,大小是8*16,每個字元用16個位元組表示。如字元a的顯示如下:
取模資料為:
0x00,0x00,0xc0,0x38,0xe0,0x00,0x00,0x00,0x20,0x3c,0x23,0x02,0x02,0x27,0x38,0x20,
然後將所有的字模資料複製到乙個文字檔案,刪除其中的空行,換行,注釋等與字模資料無關的內容,並將檔案最後的乙個逗號改為ascii字元的句號,得到乙個純字模資料檔案ascii_zk.txt
將ascii_zk.txt檔案中的每個字模資料轉換為佔乙個位元組的數,將所有的資料填充為乙個二進位制檔案ascii_zk.bin。這樣,按照ascii碼的順序,ascii_zk.bin中每16個位元組就可以繪製乙個字元。檔案轉換的程式如下:
[cpp]view plain
copy
#include
#include
/* *將乙個ascii字元轉換為數
*/
unsigned char c2x(char ch)
//將ascii_zk.txt轉換為二進位制檔案
int main(void)
fclose(frp);
fclose(fwp);
return 0;
}
字型檔檔案製作完畢。
ascii_zk.bin檔案從ascii碼的空格(0x20)開始,每16個位元組表示乙個字元的點陣字模。以字母a為例,它的ascii碼是0x41,那麼,它的字模資料的開始位置就是:
(0x41-0x20)*16
從這個位置開始依次讀取16個位元組,就是字母a的字模資料,將其顯示即可。
例:用linux的終端模擬顯示點陣字元,終端螢幕中的每個字元位置就是乙個點,程式如下。
[cpp]view plain
copy
#include
#include
#include
#define start 0x20
#define datanum 0x10
int displaychar(file *fp,char dispch,char fillch,char start_x,char start_y);
int main(void)
refresh();
while(1);
endwin();
fclose(fp);
return 0;
} /*
* 以點陣方式顯示乙個ascii字元
* dispch是要顯示的字元,fillch是填充點陣的字元
* start_x,start_y是顯示的起始座標
*/
int displaychar(file *fp,char dispch,char fillch,char start_x,char start_y)
if(x == (start_x+7))
else
} return 0;
}
該程式在fedora12的終端中執行,效果如下:
ascii點陣字型檔檔案
ASCII字元點陣字型檔的製作和使用
win7,eclipse,mingw ascii編碼的可列印字元是0x20 0x7e,先用執行下面這段 生成乙個包含全部可列印字元的txt檔案 cpp view plain copy include include int main int argc,char argv for i 0x20 i 0...
點陣字型檔製作和使用 三
乙個漢字由兩個擴充套件 ascii 碼組成,第乙個擴充套件 ascii 碼用來存放區碼,第二個擴充套件 ascii 碼用來存放位碼.在 gb2312 80 標準中,將所有的漢字分為94個區,每個區有94個位可以存放94個漢字,形成了人們常說的區位碼,這樣總共就有 94 94 8836 個漢字.在點陣...
GBK點陣顯示字型檔的製作和使用
gbk編碼 共收錄漢字21003個 符號883個,並提供1894個造字碼位,簡 繁體字融於一庫。以兩個位元組表示乙個漢字,編碼範圍是0x8140 0xfefe,相容gb2318,並覆蓋了unicode中的所有漢字。win7記事本預設以gbk儲存漢字。關於gbk的詳細資訊 開發環境 win7 ecli...