• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

C语言使用HZK16显示每个像素

OC/C/C++ 水墨上仙 2349次浏览

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


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明C语言使用HZK16显示每个像素
喜欢 (0)
加载中……