论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
#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;
}