⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hzk16.h

📁 24和16点阵汉字字库处理程序
💻 H
字号:
   ////////////////////////////////////
  //  西文状态下实现汉字输出 (hzk16)//
 //  hzk16.h   郁明 F_FIRE@990.net //
////////////////////////////////////

#include <stdlib.h>
#include <stdio.h>
#include <graphics.h>
#include <string.h>

#define HZK16 "hzk16"

int test(unsigned int a,int k)
{
a<<=(k-1);
if(a&0x80)
return (1);
else
return (0);
}


void hz16(int X,int Y,char *zw,int c)
{ int n=0;
   while(n!=strlen(zw)){  register int i,j;
	register int xx=0;
	register int yy=0;
	FILE *fp;char *wm;long num;
	fp=fopen(HZK16,"rb++");
        if(fp==NULL){/*打开hzk16字库错误*/exit(0);}
	if((zw[n]&0x80)==0)
	 {
	  num=188+zw[n]-33;
	  fseek(fp,(32)*num,0);
	  fread(wm,32,1,fp);
	  fclose(fp);
		  for(i=0;i<32;i++)
		     {for(j=1;j<=8;j++)
		       if(test(wm[i],j)==0)
			 xx++;
		       else{putpixel((xx)+X,Y+yy,c);xx++;}
		       if((i+1)%2==0){xx=0;yy++;}
                  }X=X+16;n=n+1;
	   }else{
		 zw[n]=zw[n]&0x7f;
		 zw[n+1]=zw[n+1]&0x7f;
		 zw[n]=zw[n]-0x20;
		 zw[n+1]=zw[n+1]-0x20;
		 num=(zw[n]-1)*94+(zw[n+1]-1);
		 fseek(fp,(32)*num,0);
		 fread(wm,32,1,fp);
		 fclose(fp);
		    for(i=0;i<32;i++)
		     {for(j=1;j<=8;j++)
		       if(test(wm[i],j)==0)
			 xx++;
		       else{putpixel((xx)+X,Y+yy,c);xx++;}
		       if((i+1)%2==0){xx=0;yy++;}
                  }X=X+16;n=n+2;
 }}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -