欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
C語(yǔ)言中顯示漢字 - 青春正長(cháng) - 青春正長(cháng) - 和訊博客
C語(yǔ)言中顯示漢字 [原創(chuàng ) 2007-11-19 18:13:17 ] 發(fā)表者: 青春正長(cháng)   

        在Turbo C集成開(kāi)發(fā)環(huán)境中不是漢化的,如何編制能顯示漢字的C程序呢? 

這種方法是調用中文漢字庫進(jìn)行漢字顯示。國家標準規定:漢字庫分94個(gè)區,每個(gè)區有94個(gè)漢字(以位作區別),每個(gè)漢字在漢字庫中有確定的區和位編號, 這就是漢字的區位碼。每個(gè)漢字在庫中是以點(diǎn)陣字模形式存儲的,一般采用16×16點(diǎn)陣(32字節)、24×24點(diǎn)陣(72字節),每個(gè)點(diǎn)用一個(gè)二進(jìn)制位 (0或1)表示,對應在屏幕上顯示出來(lái),就是相應的漢字。 

  由于在中文環(huán)境下,輸入的是漢字的內碼,我們必須將之轉換成區位碼,算出偏移量,從字庫中找到對應的漢字,將其字模顯示即可。 

  內碼轉換成區位碼方法如下: 

   qh=c1-0xa0;

         wh=c2-0xa0; 

  其區位碼就是: 

    qw=qh*0xff+wh 

  該漢字在字庫中離起點(diǎn)的位置是: 

     offset=(94*(qh-1)+(wh-1))*32L 

        得到了數據之后再對每個(gè)字節的每個(gè)位進(jìn)行判斷,如果為1就用putpixel()在相應的點(diǎn)上畫(huà)一點(diǎn),如果為0就不進(jìn)行畫(huà)點(diǎn)操作。

 

                   

以下的代碼部分為原創(chuàng ):
 

 void hanzi16(int x,int y,char *s,int color,int row,int col)
{
     FILE *fp;
     char buf[16][2];
     int  i,j,k,m,n;
     unsigned char qh,wh;
     unsigned long offset;

     if( (fp=fopen("hzk16","rb"))==NULL )
     {
          closegraph();
          printf("Can‘t open hzk16");
          getch();
          exit(0);
     }

     while(*s)    ;遍歷所有需要顯示的漢字
     {
          qh=(*s)-0xa0;                                ;內碼轉區碼
          wh=*(s+1)-0xa0;                           ;內碼轉位碼
          offset=(94*(qh-1)+(wh-1))*32L;   ;計算該漢字在字庫中的偏移量
          fseek(fp,offset,SEEK_SET);           ;在文件中定位
          fread(buf,32,1,fp);                          ;取出32字節的點(diǎn)陣字模存入BUF中
          for(i=0;i<16;i++)                            ;由于16X16點(diǎn)陣中有16行
              for(n=0;n<row;n++)                   ;行增大倍數
                  for(j=0;j<2;j++)                     ;每行有2個(gè)字節
                      for(k=0;k<8;k++)              ;測試字節的位
                          for(m=0;m<col;m++)     ;列增大倍數
                             if( buf[i][j] & (0x80>>k) )    ;做“與”位操作,如果是1,就畫(huà)點(diǎn)
                               putpixel(x+j*8*col+k*col+m,y+i*row+n,color);
          s+=2;                                            ;一個(gè)漢字占2個(gè)字節
          x+=(16*col);                                 ;下一列的輸出位置
     }

     fclose(fp);
}

標簽
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
點(diǎn)陣字模原理與讀取
點(diǎn)陣字體顯示系列之二:漢字顯示 | 遲思堂工作室
字庫注意事項
漢字的ASC值為什么會(huì )是負數
hzk16的介紹以及簡(jiǎn)單的使用方法
字符編碼學(xué)習筆記
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久