使用点阵字库是早期显示的主要技术,本程序使用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);
}
