不依赖高点阵字库实现屏幕汉字显示毕业

不依赖高点阵字库实现屏幕汉字显示毕业

ID:22373730

大小:62.50 KB

页数:7页

时间:2018-10-28

不依赖高点阵字库实现屏幕汉字显示毕业_第1页
不依赖高点阵字库实现屏幕汉字显示毕业_第2页
不依赖高点阵字库实现屏幕汉字显示毕业_第3页
不依赖高点阵字库实现屏幕汉字显示毕业_第4页
不依赖高点阵字库实现屏幕汉字显示毕业_第5页
资源描述:

《不依赖高点阵字库实现屏幕汉字显示毕业》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、不依赖高点阵字库实现屏幕汉字显示毕业在设计软件封面或菜单标题时,常需用到放大的汉字显示。通常采用的方法是一边从高点阵字库中读取汉字的字形码,一边加以变换在图形方式下绘点;但高点阵字库占有较大存储空间,例如:2.13汉字系统中四种字体(宋、仿宋、黑、楷)的40X40点阵字库共占用近5M字节的硬盘空间。一般汉字操作系统中的汉字显示都采用16X16点阵字库(仅占约260K字节);而由于硬盘空间的限制,并不是每台微机上都装有高点阵字库。如何使汉字放大显示程序不依赖高点阵字库而独立运行?本文提供一种方法,将需要放

2、大显示的汉字串的字形码一次性从2.13I高点阵字库(40X40点阵)读入一个SUBHZK文件,以后每次显示放大汉字时只需从该文件读取字模信息,而SUBHZK比高点阵字库要小的多。这样,汉字显示程序运行时就彻底摆脱了高点阵字库(只需打开文件SUBHZK),可在西文方式或任何中文方式下运行。程序采用TurboC2.0编写,汉字放大显示程序DISPHZ运行时只需将SUBHZK和相应显示器的图形驱动程序(如CGA.BGI、EGAVGA.BGI)随DISPHZ.EXE放在同一目录下即可。须注意的是,40X40点阵

3、字模(字形码)实际上由4036点阵组成,其汉字字形码排列格式为T5S06100.GIF;图1程序清单:/*程序READGHZ.C:将需放大显示的汉字串的字形码从2.13系统40X40点阵字库读入文件SUBHZK*/#include#includeintopenhzk40(int);FILE*fp,*fptr;/*定义全局文件指针*/char*hzk-table[]={c:\213\hzk40s,c:\231\hzk40f,c:\213\hzk40h,c:\213hzk40k};main(

4、){unsignedchar*string=管理信息系统;/*需放大的汉字串*/unsignedcharinter-code,zone-code,bit-code;intlocate,hzk-num,flag=0char*p,dot-arrays[180];(作文网zp;0x7f;/*汉字区码*/flag=1;}eles{bit-code=(inter-code-0xa0)0x7f;/*汉字位码*/flag=0;locate=(zone-code-0x10)*94+bit-code-1;/*汉字字模地址

5、*/fseek(fp,locate*180L,SEEK-SET);/*置文件指针于汉字字模地址*/fread(dot-arrays,sizeof(dot-arrays),1,fp);/*读汉字字模于数组中*/f)/*打开2.13系统40X40点阵字库文件*/{if((fp=fopen(hzk-table[hzk-num],rb))==NULL){cputs(Erroronopenfile);getch();exit(1);}return0;}/*程序DISPHZ.C:从文件SUBHZK中读取汉字字形码信

6、息并放大显示*/#include#include#include#defineRED4#definegrOK0#defineSTRLEN6/*要显示的汉字串所含汉字个数*/intode();FILE*fp;main(){init-graph();/*初始化图形模式*/if((fp=fopen(subhzk,rb))==NULL){printf(Cannotopenfile/n);exit(1);}ode();return0;}voidinit-graph(){intgdriver=DETECT,gmod

7、e,errorcode;initgraph(gdriver,gmode,);errorcode=graphresult();if(errorcode!=grOK){printf(Graphicserror:%s,grapherrormsg(errorcode));printf(Pressanykeytohalt:);getch();exit();}}/*汉字字模读取与放大显示*/int,inty-zoom,intcolor){inti,j,k,n;chardot-arrays[180];/*定义18

8、0字节数组,暂存汉字字模*/for(n=0;n{fread(dot-arrays,sizeof(dot-arrays),1,fp);for(i=0;i<36;i++)/*绘汉字上排(1至72字节所含点阵)*/for(j=0,j<2;j++)for(k=0;k<8,k++)if((dot-arrays[i*2+j]>>(7-k))1)putpixel(x-zoom*(x+i),y-zoom*(y+j*8+k),c

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。