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