使用点阵字库是早期显示的主要技术,本程序使用hzk16字库显示每一个像素,放大。
#include<stdio.h>
#include<stdlib.h>
//#include<conio.h>
void main()
{
   int    i,j;   
   FILE    *HZK; 
   char    mat[32]; 
   unsigned    char    incode[4]={"好"};    //    要读出的汉字   
   unsigned    char    qh,wh;   
   unsigned    long    offset;
   int arrar[16][16]={0},m,n;
   unsigned char a=0;
   //    占两个字节,    取其区位号   
   qh=incode[0]-0xa0;//获得区码            
   wh=incode[1]-0xa0;   //获得位码               
   offset=(94*(qh-1)+(wh-1))*32;          /*得到偏移位置*/   
   //offset=32;
   printf("%d,%d\n",qh,wh);
   if((HZK=fopen("hzk16","rb")) ==NULL)   //写入字节数32的信息到mat
   {   
   printf("Can't    Open    hzk16\n");   
   exit(0);   
   }   
   fseek(HZK,offset,SEEK_SET);   
   fread(mat,32,1,HZK);
//显示
for(i=0;i<32;i++)
{
	a=mat[i];
	m=i/2;
	n=i%2*8;
	for(j=7;j>=0;j--)
		{
			arrar[m][n+j]=a%2;
			a=a/2;
	    }
}
for(m=0;m<16;m++)
	{
		for(n=0;n<16;n++)
		   printf("%d",arrar[m][n]);
		printf("\n");
    }
for(m=0;m<16;m++)
	{
		for(n=0;n<16;n++)
	{
		if(arrar[m][n]==0)
			printf("%c",32);
		else
			printf("*");
	}
        printf("\n");
    }
    fclose(HZK);
}
