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

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

ID:22714883

大小:62.50 KB

页数:6页

时间:2018-10-31

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

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

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

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

3、00.GIF;图1程序清单:/程序READGHZ.C:将需放大显示的汉字串的字形码从2.13系统40X40点阵字库读入文件SUBHZK/#include<stdio.h>#include<io.h>intopenhzk40(int);FILEfp,fptr;/定义全局文件指针/charhzk-table[]={"c:\213\hzk40s","c:\231\hzk40f","c:\213\hzk40h","c:\213hzk40k"};main(){unsignedcharstring="管理信息系

4、统";/需放大的汉字串/unsignedcharinter-code,zone-code,bit-code;intlocate,hzk-num,flag=0charp,dot-arrays[180];if((fptr=fopen("subhzk","p;0x7f;/汉字区码/flag=1;}eles{bit-code=(inter-code-0xa0)0x7f;/汉字位码/flag=0;locate=(zone-code-0x10)94+bit-code-1;/汉字字模地址/fseek(fp,locate180L,SEEK-SET);/置

5、文件指针于汉字字模地址/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中读取汉字字形码信息并放大显示/#include<graphics.h>#include<stdio.h>

6、#include<ftl.h>#defineRED4#definegrOK0#defineSTRLEN6/要显示的汉字串所含汉字个数/intode();FILEfp;main(){init-graph();/初始化图形模式/if((fp=fopen("subhzk","rb"))==NULL){printf("Cannotopenfile/n");exit(1);}ode();return0;}voidinit-graph(){intgdriver=DETECT,gmode,errorcode;initgraph(gdrive

7、r,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];/定义180字节数组,暂存汉字字模/for(n=0;n<STRLEN;n++){fread

8、(dot-arrays,sizeof(dot-arrays),1,fp);for(i=0;i<36;i++)/绘汉字上排(1至72字节所含点阵)/for(j=0,j<2;j++)f

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

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

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