HZK16點陣字庫程序
- /*******************************************************************************
- **程序名稱:演示使用HZK16點陣字庫的程序
- **程序描述:使用HZK16實現(xiàn)顯示16*16點陣漢字
- **性能提升:
- **程序版本:V1.0
- **程序作者:syrchina
- **最后修改:2011年8月16日
- *******************************************************************************/
- #include
- /*******************************************************************************
- **函數(shù)名稱:Bytes_Read_from_HZK16
- **函數(shù)描述:從字庫文件中讀取一個漢字的字模點陣數(shù)據(jù)
- **入口參數(shù):unsigned char*s 指向目標(biāo)漢字的指針,
- char*constchs 用于存儲字模的數(shù)組首地址
- **出口參數(shù):無
- *******************************************************************************/
- void Bytes_Read_from_HZK16(unsigned char*s,char*constchs)
- {
- FILE*fp;
- unsigned long offset;
- offset=((s[0]-0xa1)*94+(s[1]-0xa1))*32;//根據(jù)內(nèi)碼找出漢字在HZK16中的偏移位置
- if((fp=fopen("HZK16","r"))==NULL)return;//打開字庫文件
- fseek(fp,offset,SEEK_SET);//文件指針偏移到要找的漢字處
- fread(chs,32,1,fp);//讀取該漢字的字模
- fclose(fp);
- }
- /*******************************************************************************
- **函數(shù)名稱:Bytes_Display
- **函數(shù)描述:在屏幕上顯示一個漢字
- **入口參數(shù):char*constchs 存儲了漢字點陣數(shù)據(jù)的數(shù)組首地址
- **出口參數(shù):無
- *******************************************************************************/
- void Bytes_Display(char*constchs)
- {
- inti,j;
- for(i=0;i<32;i++)//顯示
- {
- if(i%2==0)printf("n");//每行兩字節(jié),16X16點陣
- for(j=7;j>=0;j--)
- {
- if(chs[i]&(0x1<
- {printf("O");}//由高到低,為1則輸出O,反之輸出-;
- else
- {printf("-");}
- }
- }
- }
- /*******************************************************************************
- **函數(shù)名稱:main
- **函數(shù)描述:main 函數(shù)
- **入口參數(shù):無
- **出口參數(shù):無
- *******************************************************************************/
- intmain(void)
- {
- char chs[32];//16*16=256個點
- unsigned char s[]="中國";//要顯示的漢字
- Bytes_Read_from_HZK16(&s[0],chs);//去字庫中讀取漢字字模
- Bytes_Display(chs);//在屏幕上顯示這個漢字
- printf("n");
- Bytes_Read_from_HZK16(&s[2],chs);//去字庫中讀取漢字字模,注意每個漢字占2個char的存儲空間
- Bytes_Display(chs);//在屏幕上顯示這個漢字
- return 0;
- }
評論