中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      不依賴高點陣字庫實現屏幕漢字顯示

      時間:2024-04-27 05:26:39 計算機畢業論文 我要投稿
      • 相關推薦

      不依賴高點陣字庫實現屏幕漢字顯示

      在設計軟件封面或菜單標題時,常需用到放大的漢字顯示。通常采用的方法是一邊從高點陣字庫中讀取漢字的字形碼,一邊加以變換在圖形方式下繪點;但高點陣字庫占有較大存儲空間,例如 :2.13漢字系統中四種字體(宋、仿宋、黑、楷)的40X40點陣字庫共占用近5M字節的硬盤空間。一般漢字操作系統中的漢字顯示都采用16X16點陣字庫(僅占約260K字節);
      而由于硬盤空間的限制,并不是每臺微機上都裝有高點陣字庫。
      如何使漢字放大顯示程序不依賴高點陣字庫而獨立運行?本文提供一種方法,將需要放大顯示的漢字串的字形碼一次性從2.13I高點陣字庫(40X40點陣)讀入一個SUBHZK文件,以后每次顯示放大漢字時只需從該文件讀取字模信息,而SUBHZK比高點陣字庫要小的多。這樣,漢字顯示程序運行時就徹底擺脫了高點陣字庫(只需打開文件SUBHZK),可在西文方式或任何中文方式下運行。
      程序采用Turbo C2.0編寫,漢字放大顯示程序DISPHZ運行時只需將SUBHZK和相應顯示器的圖形驅動程序(如CGA.BGI、EGAVGA.BGI)隨DISPHZ.EXE放在同一目錄下即可。
      須注意的是,40X40點陣字模(字形碼)實際上由40×36點陣組成,其漢字字形碼排列格式為
      @@T5S06100.GIF;圖1@@
      程序清單:
      /*程序READGHZ.C:將需放大顯示的漢字串的字形碼從2.13系統40X40點陣字庫讀入
      文件SUBHZK*/
      #include
      #include
      int openhzk40(int);
      FILE *fp,*fptr; /*定義全局文件指針*/
      char *hzk-table[]={"c:\\213\\hzk40s","c:\\231\\hzk40f",
      "c:\\213\\hzk40h","c:\\213\hzk40k"};
      main()
      {
      unsigned char *string="管理信息系統";
      /*需放大的漢字串*/
      unsigned char inter-code ,zone-code,bit-code;
      int locate,hzk-num,flag=0
      char *p,dot-arrays[180];
      if((fptr=fopen("subhzk","wb"))==NULL){
      printf("Cannot open file\n");
      exit(1);
      } /*打開或創建文件SUBHZK */
      openhzk40(1);
      p=string;
      while(*p)
      {
      inter-code=*p++;
      if(inter-code>0xal)
      if(flag==0)
      {
      zone-code=(inter-code-0xa0)&0x7f;/*漢字區碼*/
      flag=1;
      }
      eles
      {
      bit-code=(inter-code-0xa0)&0x7f;
      /*漢字位碼*/
      flag=0;
      locate=(zone-code-0x10)*94+bit-code-1;
      /*漢字字模地址*/
      fseek(fp,locate*180L,SEEK-SET);
      /*置文件指針于漢字字模地址*/
      fread(dot-arrays,sizeof(dot-arrays),1,fp);
      /*讀漢字字模于數組中*/
      fwrite(dot-arrays,sizeof(dot-arrays),1,fptr);
      /*寫漢字字模到文件*/
      }
      }
      fclose(fp);
      fclose(fptr);
      return 0;
      }
      int openhzk40(int hzk-num)

      /*打開2.13系統40X40點陣字庫文件*/
      {
      if((fp=fopen(hzk-table[hzk-num],"rb"))==NULL)
      {
      cputs("Error on open file");
      getch();
      exit(1);
      }
      return 0;
      }
      /*程序DISPHZ.C:從文件SUBHZK中讀取漢字
      字形碼信息并放大顯示*/
      #include


      #include
      #include
      #define RED 4
      #define grOK 0
      #define STRLEN 6
      /*要顯示的漢字串所含漢字個數*/
      int writehz (int,int,int,int,int,int);
      void init-graph();
      void far restorecr tmode();
      FILE *fp;
      main ()
      {
      init-graph(); /*初始化圖形模式*/
      if((fp=fopen("subhzk","rb"))==NULL){
      printf("Cannot open file/n");
      exit(1);
      }
      writehz(30,30,10,2,2,RED);
      fclose(fp);
      getch();
      restorecr tmode();
      return 0;
      }
      void init-graph()
      {
      int gdriver=DETECT,gmode,errorcode;
      initgraph(&gdriver,&gmode,"");
      errorcode=graphresult();
      if(errorcode!=grOK)
      {
      printf("Graphics error:%s\n",grapherrormsg(errorcode));
      printf("Press any key to halt:");
      getch();
      exit();
      }
      }
      /*漢字字模讀取與放大顯示*/
      int writehz(int x,int y,int z,int x-zoom,int y-zoom,int color)
      {
      int i,j,k,n;
      char dot-arrays[180]; /*定義180字節數組,暫存漢字字模*/
      for(n=0;n{
      fread(dot-arrays,sizeof(dot-arrays),1,fp);
      for(i=0;i<36;i++) /*繪漢字上排(1至72字節所含點陣)*/
      for(j=0,j<2;j++)
      for(k=0;k<8,k++)
      if((dot-arrays[i*2+j]>>(7-k))&1)
      putpixel(x-zoom*(x+i),y-zoom*(y+j*8+k),color);
      for(i=0;i<36;i++) /*繪漢字下排(73至180字節所含點陣);*/
      for(j=0,j<3;j++)
      for(k=0,k<8,k++)
      if((dot-arrays[72+i*3+j]>>(7-k))&1)
      putpixel(x-zoom*(x+i),y-zoom*(y+16+j*8+k),color);
      x=x+36+z; /*移位,準備繪下一漢字*/
      }
      return 0;
      }

      【不依賴高點陣字庫實現屏幕漢字顯示】相關文章:

      利用DVI實現雙屏幕超寬圖像顯示03-18

      YUV轉換RGB顯示的實現03-07

      漢字的動態編碼與顯示方案03-18

      軟件封面特技顯示的語言實現03-28

      單片機系統中的漢字顯示03-18

      嵌入式現場智能顯示系統的設計與實現03-07

      多種數制顯示的匯編語言編程實現03-19

      VGA顯示與TV顯示的區別及轉換03-19

      靜態圖像的直接顯示03-06

      主站蜘蛛池模板: 国产chinese在线视频| 丰满人妻一区二区乱码中文电影网| 永春县| AV无码人妻一区二区三区牛牛| 久久精品中文字幕亚洲| 日本岛国大片不卡人妻| 午夜无码国产18禁| 崇左市| 日本草逼视频免费观看| 不卡的亚洲av网在线| 沂南县| 国产精品无码久久AⅤ人妖| 国产V亚洲V天堂A无码| 国产美女av一区二区三区| 亚洲色图视频在线播放| 欧美亚洲h在线一区二区| 国产久热精品热线av| 韩日无码不卡| 湖北省| 丰都县| 日韩激情网| 色老头亚洲成人免费影院| 西西人体大胆视频无码| 国产爆乳美女娇喘呻吟久久| 兰考县| 靖边县| 贵南县| 最新永久免费AV网站| 日韩精品一区二区av在线| 黄色大片一区二区中文字幕| 临江市| 日本少妇精品一区二区| 精品一区二区三区a蜜桃| 日韩精品极品免费观看| 中文一区二区三区无码视频| 亚洲福利黄色片深爱网| 精品蜜桃av一区二区三区| 亚洲女精品一区二区三区| 素人激情福利视频| 骚片av蜜桃精品一区| 辽阳县|