⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 showchinense.c

📁 fr-400 嵌入式系统板的 图形 api
💻 C
字号:
#include "stdlib.h"
#include "stdio.h"
#include "string.h"
#include "graphics.h"

void WriteHzStr();
void WriteHz(unsigned char,unsigned char,int,int);
void GetHzBit(unsigned char,unsigned char);

char *s="中华人民共和国";
FILE *fp;
long int fpos;            /*具体汉字在字库中的偏移量*/
char bitdata[32];         /*存储汉字字模*/

main()
{
   int gdrive=DETECT,gmode;
   initgraph(&gdrive,&gmode,"");          /*加载图形模式*/
   if((fp=fopen("c:\\hzk16","rb"))==NULL) /*打开16*16点阵汉字字库*/
   {
      printf("cannot open file\n");
      exit(0);
   }
   WriteHzStr();
   fclose(fp);
   closegraph();
   getch();
}

void WriteHzStr()
{
   int num,i,x,y;
   num=strlen(s);                   /*获取字符串长度*/
   x=0,y=0;
   for(i=0;i<num;i+=2)              /*每次读两个字节*/
   {
      WriteHz(s[i],s[i+1],x,y);
      x+=16;
      if(x>=640) {y+=16;x=0;}
   }
}

void WriteHz(unsigned char left,unsigned char right,int x,int y)
{
   unsigned char bit[8]={128,64,32,16,8,4,2,1};
   int i,j;
   GetHzBit(left,right);
   for(i=0;i<16;i++)
      for(j=0;j<8;j++)     /*和bit[]与操作以后,在屏幕上画点*/
      {
         if(bitdata[2*i]&bit[j]) putpixel(x+j,i+y,YELLOW);
 if(bitdata[2*i+1]&bit[j]) putpixel(x+8+j,i+y,YELLOW);
      }
}

void GetHzBit(unsigned char left,unsigned char right)
{
   fpos=32L*((left-161)*94+(right-161)); /*获得字模在字库中的位置*/
   fseek(fp,fpos,SEEK_SET);
   fread(bitdata,32,1,fp);          /*把该汉字字模读入到bitdata中*/
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -