免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
誰有《C 高級實(shí)用程序設(shè)計》- C程序漢字顯示技術(shù) 那一章的源代碼 C/C / 非技術(shù)區(qū) - CSDN社區(qū) community.csdn.net

UCDOS的漢字庫下載:(注意,下載后的文件名可能以txt結(jié)尾,但是不是txt文件)  
   
  8*16點(diǎn)陣的ASC字庫   ASC16    
  16*16點(diǎn)陣的漢字庫   HZK16    
  24*24點(diǎn)陣的宋體字庫   HZK24S    
  24*24點(diǎn)陣的仿宋體字庫   HZK24F    
  24*24點(diǎn)陣的黑體字庫   HZK24H    
  24*24點(diǎn)陣的楷體字庫   HZK24K    
  24*24點(diǎn)陣特殊字庫   HZK24TTop

6 樓Kvci(看了不笑就沒小JJ同時又比較長的昵稱__——————————————————————————————)回復(fù)于 2005-10-15 19:29:01 得分 75

圖形模式下的漢字顯示    
  作者:unknown   更新時間:   2005-03-13            
       
    我們在編寫一些應(yīng)用軟件時,為了使軟件更為通俗淺顯、易學(xué)易用,具備漢字的用戶界面是必不可少的條件。在文本模式下,只要有漢字操作系統(tǒng)的支持,顯示漢字是不成問題的。只要用printf或cprintf就可以了。#include   void   main(){printf("我正在學(xué)習(xí)C語言!");}  
         在圖形模式下顯示漢字就稍稍麻煩些??尚业氖怯泻芏嗳藦氖逻@一問題的研究,并開發(fā)了一些用于漢字顯示的函數(shù)。這些函數(shù)不需要漢字系統(tǒng)的支持,但用到其中的字庫文件。如UCDOS的HZK16。  
       漢字顯示的第一步是打開字庫文件。    
       函數(shù):   int   OpenHz(const   char   *Hz16Path);  功能:打開字庫文件Hz16Pathint   handle;   /*打開的字庫文件指針*/int   OpenHz(const   char  *Hz16Path){return   (handle=open(Hz16Path,O_RDONLY|O_BINARY));}  打開字庫文件后,就可以用下面介紹的函數(shù)顯示16點(diǎn)陣的漢字。  
       函數(shù):   int   WrtHz16(int  x,int   y,int   z,int   color,char   *p);  功能:在(x,y)用color顏色顯示漢字串p,漢字之間的空格數(shù)為z。intWrtHz16(int   x,   int   y,int  z,int   color,char   *p)  
  {  
  unsigned   int   i,c1,c2,f=0;   /*x,y:write   at   (x,y);*/  
  int   rec,i1,i2,i3;   /*z:space   between;*/  
  long   l;   /*color:txt   color*/  
  char   by[32];   /*p:HZ   str*/  
  if(   handle<0   )   return   -1;   while((i=*p++)!=0){  
  if(i>0xa1)  
  if(f==0){  
  c1=(i-0xa1)&0x07f;  
  f=1;  
  }  
  else{  
  c2=(i-0xa1)&0x07f;  
  f=0;  
  rec=c1*94+c2;  
  l=rec*32L;  
  lseek(handle,l,SEEK_SET);  
  read(handle,by,32);  
  for(i1=0;i1<16;i1++)  
  for(i2=0;i2<2;i2++)  
  for(i3=0;i3<8;i3++)  
  if(GetBit(by[i1*2+i2],7-i3))  
  putpixel(x+i2*8+i3,y+i1,color);  
  x=x+z+16;  
  }  
  }  
  return(x);  
  }  
  函數(shù)GetBit定義如下:  
       函數(shù):   int   GetBit(unsigned   char   c,int   n);   功能:取得漢字的點(diǎn)陣數(shù)據(jù)。  
  int   GetBit(unsigned   char   c,int   n)  
  {  
  return((c>>n)&1);  
  }  
  漢字顯示結(jié)束,應(yīng)該關(guān)閉字庫文件。  
  void   CloseHz(void)  
  {  
  close(   handle   );  
  }  
  #include   "\Caic\Include\Hz.h"  
  #include    
  #include   const   char*   Hz16Path   =   "\\UCDOS\\Hzk16.";  
    const   char*   HzStr   =   "苦丁香C語言輔助學(xué)習(xí)軟件";  
  void   main(){  
  int   gr=DETECT,gm;  
  initgraph(&gr,&gm,"\\Caic\\Bgi");  
  OpenHz(   Hz16Path   );  
  Wrt16Hz(20,20,4,RED,HzStr);  
  CloseHz();  
  getch();  
  closegraph();  
  }顯示24點(diǎn)陣及放大漢字  
       下面探討一下如何顯示24點(diǎn)陣及放大漢字。24點(diǎn)陣字庫也可在任意一種漢字系統(tǒng)中找到。如UCDOS的HZK24S。  
  函數(shù):   int   WrtHz24(int   x,int   y,int   z,int   color,int   m,\int   n,char   *p);   功能:顯示24點(diǎn)陣及放大漢字。  
  int   WrtHz24(int   x,int   y,int   z,int   color,int   m,int   n,char   *p)  
  {  
  unsigned   int   i,c1,c2,f=0;   /*z:   漢字字符間的空格*/  
  int   i1,i2,i3,i4,i5,rec;   /*x,y:   先是位置(x,y)*/  
  long   l;   /*color:漢字顏色*/  
  char   by[72];   /*m:   x   方向的放大倍數(shù)*/  
  /*n:   y   方向的放大倍數(shù)*/  
  if(   handle<0   )   return   -1;   /*p:   顯示漢字串*/   while((i=*p++)!=0){  
  if(i>0xa1)  
  if(f==0){  
  c1=(i-0xa1)&0x7f;  
  f=1;  
  }  
  else{  
  c2=(i-0xa1)&0x7f;  
  f=0;  
  rec=(c1-15)*94+c2;  
  l=rec*72L;  
  lseek(handle,l,SEEK_SET);  
  read(handle,by,72);  
  for(i1=0;i1<24*m;i1=i1+m)  
  for(i4=0;i4   for(i2=0;i2<=2;i2++)  
  for(i3=0;i3<8;i3++)  
  if(GetBit(by[i1/m*3+i2],7-i3))  
  for(i5=0;i5   putpixel(x+i1+i4,y+i2*8*n+i3*n+i5,color);  
  x=x+24*m+z;  
  }  
  }  
  return(x);  
  }   使用Wrt24Hz的例子:#include   "\Caic\Include\Hz.h"  
  #include    
  #include   const   char*   Hz24Path   =   "C:\\Ucdos\\fnt\\hzk24s."  
  const   char*   HzStr   =   "苦丁香C語言輔助學(xué)習(xí)軟件";  
  void   main(){  
  int   gr=DETECT,gm;  
  initgraph(&gr,gm,"\\Caic\\Bgi");  
  OpenHz(   Hz24Path   );  
  Wrt24Hz(20,20,   /*先是在(x,y)*/  
  4,   /*漢字間的空格為4*/  
  RED,   /*用紅色顯示*/  
  2,   /*x   方向放大2倍*/  
  4,   /*y   方向放大4倍*/  
  HzStr);   /*顯示字符串*/  
  CloseHz();  
  getch();  
  closegraph();  
  }    
     

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
點(diǎn)陣字庫結(jié)構(gòu)以及點(diǎn)陣字顯示的實(shí)現(xiàn)原理
hzk16的介紹以及簡單的使用方法
游戲中漢字顯示的實(shí)現(xiàn)與技巧[ZZ]
GUI漢字顯示原理
HZK16漢字16*16點(diǎn)陣字庫的使用及示例程序
iconv實(shí)現(xiàn)編碼轉(zhuǎn)換與中文點(diǎn)陣字庫HZK16
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服