当前位置:文档之家› LCD字库程序

LCD字库程序

用【 小 | 中 | 大 】字体浏览
C51编程:请问 从HZK16 提取的汉字字模是什么格式的 [凡非] [18次] 01-10-31 上午 11:19:14

是这样的格式 [smiling21cn] [52次] 01-10-31 下午 02:22:48
byte0 byte1
byte2 byte3
... ...
byte30 byte31

LCD汉字库的建立 [aaa] [77次] 01-10-31 下午 03:32:07
这要看你存的文件是二进制还是ASCII码文件了,本人曾经编写了一段c语言的程序提取汉字
库字模,你是否需要?

我需要,可以mail一份吗?zhangxhliu@https://www.doczj.com/doc/2215085194.html, [zhangxhliu] [4次] 01-10-31 下午 05:32:58

多谢,chan_yc@https://www.doczj.com/doc/2215085194.html, [凡非] [6次] 01-10-31 下午 06:51:09

我也需要,也可以mail一份吗?zhaojinjun_302@https://www.doczj.com/doc/2215085194.html,。谢谢! [zhaojinjun_302] [4次] 01-10-31 下午 09:32:05

还没收到呀! [凡非] [0次] 01-11-1 下午 05:59:40

LCD字库程序 [aaa] [23次] 01-11-2 上午 10:13:17
已经发送!

(抱歉)LCD字库程序 [aaa] [42次] 01-11-2 上午 10:45:49
(因为机器故障,只有通过此方式给大家)
/*此程序用于生成汉字的点阵*/
/*输入汉字文本文件生成名为SMCCLIB.DOT的纯点阵字库*/
/*需要汉字库HZK16在当前目录*/
/*系统提示时输入一个文本汉字文件*/
#include
#include
#include
#include

unsigned char *WordDot16;
int WordNum16=0;

main()
{
unsigned long int i,j,NumBytes,Reen,FileLong;
unsigned int Qu,Wei,m,Word,WordNum,Shzk[500];
unsigned char PreHalf,BakHalf,Byte,*FileBuf,Dot[32],buf;
FILE *fp1,*fp2,*fp3;
char SouceFile[12],p[500];
int driver,mode;
if((fp1 = fopen("smcclib.dot","wb")) == NULL)
{ printf("Lib File Open Error!\n");
getch();
exit(0);
}
printf("Input Chinese Souce File Name:");
scanf("%s", &SouceFile);
if((fp2 = fopen(SouceFile, "r")) == NULL)
{ printf("Souce File Open File Error \n");
getch();
exit(0);
}
if((fp3=fopen("d:\\sk\\hzk\\hzk16","rb"))==NULL)
{ printf("Can not Open File HZK16\n");
getch();
exit(1);
}
FileLong=filelength(fileno(fp2));
FileBuf=(char *)malloc(FileLong);
for(i=0;ifscanf(fp2,"%c",&FileBuf[i]);
WordNum=0;
for(i=0;i{if(FileBuf[i]>0xa0)
{ Word=FileBuf[i]*256+FileBuf[i+1];
i++;
for(j=0;j{ if(Word==Shzk[j])
j=WordNum+2;
}
if(j==WordNum)
{Shzk[WordNum++]=Word;}
}
}
for(i=0;i{ PreHalf=Shzk[i]>>8;
BakHalf=Shzk[i]&0x00ff;
/*如果需要加入内码,需要加入以下二句*/
/*否则生成无内码的纯点阵字库*/
fwrite(&PreHalf,1,1,fp1);
fwrite(&BakHalf,1,1,fp1);

Qu=PreHalf-160;
Wei=BakHalf-160;
Reen=(Qu-1)*94+Wei;
NumBytes=(Reen-1)*32;
fseek(fp3,NumBytes,SEEK_SET);
fread(Dot,1,32,fp3);
for(m=0;m<32;m++)
{ buf=Dot[m];
fwrite(&buf,1,1,fp1);
}
}
fclose(fp3);
fclose(fp1);
free(FileBuf);
fclose(fp2);
}





点击这里回复这篇贴子>>
_____________________________________________________________________________
Copyright?,C51BBS论坛 2000-2002

相关主题
文本预览
相关文档 最新文档