不依赖高点阵字库实现屏幕汉字显示
在设计软件封面或菜单标题时,常需用到放大的汉字显示。通常采用的方法是一边从高点阵字库中读取汉字的字形码,一边加以变换在图形方式下绘点;但高点阵字库占有较大存储空间,例如 :2.13汉字系统中四种字体(宋、仿宋、黑、楷)的40X40点阵字库共占用近5M字节的硬盘空间。一般汉字操作系统中的汉字显示都采用16X16点阵字库(仅占约260K字节);
而由于硬盘空间的.限制,并不是每台微机上都装有高点阵字库。
如何使汉字放大显示程序不依赖高点阵字库而独立运行?本文提供一种方法,将需要放大显示的汉字串的字形码一次性从2.13I高点阵字库(40X40点阵)读入一个SUBHZK文件,以后每次显示放大汉字时只需从该文件读取字模信息,而SUBHZK比高点阵字库要小的多。这样,汉字显示程序运行时就彻底摆脱了高点阵字库(只需打开文件SUBHZK),可在西文方式或任何中文方式下运行。
程序采用Turbo C2.0编写,汉字放大显示程序DISPHZ运行时只需将SUBHZK和相应显示器的图形驱动程序(如、)随放在同一目录下即可。
须注意的是,40X40点阵字模(字形码)实际上由40×36点阵组成,其汉字字形码排列格式为
@@T5S06100.GIF;图1@@
程序清单:
/*程序READGHZ.C:将需放大显示的汉字串的字形码从2.13系统40X40点阵字库读入
文件SUBHZK*/
#include
#include
int openhzk40(int);
FILE *fp,*fptr; /*定义全局文件指针*/
char *hzk-table[]={"c:213hzk40s","c:231hzk40f",
"c:213hzk40h","c:213hzk40k"};
main()
{
unsigned char *string="管理信息系统";
/*需放大的汉字串*/
unsigned char inter-code ,zone-code,bit-code;
int locate,hzk-num,flag=0
char *p,dot-arrays[180];
if((fptr=fopen("subhzk","wb"))==NULL){
printf("Cannot open filen");
exit(1);
} /*打开或创建文件SUBHZK */
openhzk40(1);
p=string;
while(*p)
{
inter-code=*p++;
if(inter-code>0xal)
if(flag==0)
{
zone-code=(inter-code-0xa0)&0x7f;/*汉字区码*/
flag=1;
}
eles
{
bit-code=(inter-code-0xa0)&0x7f;
/*汉字位码*/
flag=0;
locate=(zone-code-0x10)*94+bit-code-1;
/*汉字字模地址*/
fseek(fp,locate*180L,SEEK-SET);
/*置文件指针于汉字字模地址*/
fread(dot-arrays,sizeof(dot-arrays),1,fp);
/*读汉字字模于数组中*/
fwrite(dot-arrays,sizeof(dot-arrays),1,fptr);
/*写汉字字模到文件*/
}
}
fclose(fp);
fclose(fptr);
return 0;
}
int openhzk40(int hzk-num)
/*打开2.13系统40X40点阵字库文件*/
{
if((fp=fopen(hzk-table[hzk-num],"rb"))==NULL)
{
cputs("Error on open file");
getch();
exit(1);
}
return 0;
}
/*程序DISPHZ.C:从文件SUBHZK中读取汉字
字形码信息并放大显示*/
#include
-
关于高校应用型人才培养对策研究
摘要:市场经济发展的客观要求需要大量的具有动手实践能力的应用型高级人才,地方性应用型本科大学承担着这一任务,但存在着诸多不适应的地方,通过分析六个方面的问题,提出了五个对策:明晰办学定位,确立地方高校应用型人才培养规格和目标;强化实践环节,重视创新(...
-
让教育充满智慧
有人说,名师之名,不在于名,而在于“明”。“明”就是智慧。还有人说,智慧是一条通往人生幸福和快乐的心灵之路。假期里阅读了《16位教育家的智慧档案》,书中每一位教育专家的经历不同,各具特色,但他们却具有共同的特征:拥有深邃的教育思想和高尚的教育情怀;具有坚持不懈...
-
情之深,趣之浓-浅谈小学英语课堂的“情”与“趣”
任何一种教育都应该是爱的教育,以教师对学生的爱、对自己所教学科的爱,来唤起学生对知识的爱。“情感是人类特有的灵性”,“兴趣是学生最好的老师”。古人云:“未见意趣,必不乐学。”兴趣是最好的老师,是学习的强大动力。一个成功的英语教师要在教学中有意识地培养学...
-
“手指”的秘密
1.thumb大拇指。手指很灵活,但如果十个指头全是大拇指,那就不好玩了。英语的all(fingersand)thumbs表示“笨手笨脚”的意思,例如:I'mallfingersandthumbsthismorning.?And?Idroppedateacup.今天早上我笨手笨脚,打破了一个茶杯。中西方文化中,在表示赞同(agreement)和...