多级结构汉字字库技术及其中文电脑操作系统设计的制作方法

文档序号:6407783阅读:444来源:国知局
专利名称:多级结构汉字字库技术及其中文电脑操作系统设计的制作方法
技术领域
本发明属计算机汉字信息处理范筹。中文电脑的基础是汉字字库,中文操作系统主要由汉字输入、显示、打印输出等模块组成,而每一模块的实现都要通过字形产生器和字库管理模块调用汉字库。
目前,大部分汉字系采用统仍点阵汉字库,主要代表有北大方正(5.0以下版本)、北京联想、王码、四通、金峰、晓军2.13和巨人汉字系统等;一般采用48×48点阵以下的各种字体的字库。
点阵汉字的弱点在于低点阵汉字字形粗糙,放大有锯齿,而高点阵字库对存储容量的占用以几何级数倍增长。例如,一个256×256点分辨率点阵字要占用8K字节,一个国标汉字基本集(含7445个汉字及字符)的一种字体要占60M字节,10种字体的字库要600M字节,这在中低档微机上不能实现,制成汉卡要非常昂贵的造价,高点阵字库由于占用存储容量大,不可能将各字体一次调入内存,从而增加了内、外存的数据调进调出次数因而大大降低了计算机的处理速度和外存的使用寿命。
矢量汉字技术为特征的汉字系统其主要代表有西安凯特计算机公司的CAD汉字系统(采用AUTOCAD系统划线数据结构描述)和北大方正、香港金山(SUPER)的6.0F版本(采用POSTSCRIPT技术的轮廓矢汉字)。这些系统在提高处理高分辨率的汉字信息和减少对存储容量的占用方面已经有了明显的进步,但是,它们的共同特点是字库描述的基本单位仍然是字,描述一个字的轮廓曲线仍要占用较大的存储容量,而且,每增加一种字体仍然要增加差不多等量的存储容量;以北大方正6.0F汉字系统为例,每一种字体要占用1-2MB存储容量,8种字体占用了10MB多字节存储容量,对于中低档微机来说,将所有字库一次调入内存使用仍不可能,制成汉卡价格仍然昂贵。
本发明的目的在于实现一种高精度、省内存、价廉且应用面广的汉字字库技术和汉字系统,它与传统的计算机汉字字形产生技术的不同点在于传统的计算机汉字库将汉字看成一个独立的不可分的基本单位,而本技术的汉字计算机字形描述将汉字又向下细分若干级,分级编码,最终以笔划或组成笔划的曲线段为基本单位,由于汉字笔划数比汉字字符集少得多,该技术充分利用了汉字字形的特点和计算机的特点,从而这种在计算机里的新型表示法和处理方法能够达到计算机对汉字字形以任意高精度最完美地描述和最大限度地节省存储容量的目的。例如同样描述8种不同字体的256×256点分辨率的国标汉字基本级的字库,多级结构字库只要占用600KB存储容量,这是同等点阵字库所占容量的千分之一和同等矢量字库的十五分之一,而每增加一种字体只要增加10KB到70KB的存储容量,汉字字符集越大、字体越多、字形精度要求越高就越能显示其优越性,把多种字体同时调入内存使用对于中低档微机都已成为可能。
目前已研制成功含五种字体的256×256点以上分辨率的国标汉字基本集〔含6763个汉字等〕字库仅占190K字节;正在研制第二版包括9种字体的256×256点以上分辨率的国标基本集和第一辅助集〔繁体字〕字库约占300K字节;第三版包括24种字体的、分辨率256×256以上的、含国标汉字基本集和第一辅助集汉字的字库只约占750K字节;第四版包括所有汉字字体的256×256点以上分辨率的国标汉字基本集及第一、二、三、四、五辅助集所有汉字及图形字符〔约五万字〕的字库约只占存储容量为1.5至2M字节。
该技术除了可以用于设计含有超大型国标汉字字符集的汉字操作系统外,还可以用以研制具有多国文字的多字体字库,特别是我国各少数民族的文字、日文、朝鲜文、东南亚各国文字。
本技术生成的中文电脑应用复盖面广,由于它最大限度地节省存储资源,解决了汉字字集大字体多难于一次调入内存使用的难题,可以很方便地生产各种不同的中文信息处理应用的版本适于从家用电脑到大型计算机系统使用,对于用户的应用都可以节省投资,势必推动中文电脑的更广泛地使用,该技术特别适于高级排版印刷系统、高级动画系统、字幕机等应用,由于它们对字库的依赖而可以提高性能和大大降低造价。
总之,该技术应用的前景广阔。
多级结构汉字字库的设计原理概述如下将国标码表示的汉字的字形再自下细分若干级分级编码最终以笔划或构成笔划的曲线段为基本单位来描述和生成该汉字的字形的方法构成的字库称为多级结构字库。附

图1是一个多级结构字库示意图。
如附图1所示“啊”字是该字库的第0号字;
“啊”字分解成简字“阿”和字元“口”,称为二元字;
“阿”简字分解成复合字元“可”和字元“阝”称为二元简字;
“可”复合字元分解成字元“口”和“丁”,为二元复合字元;
“口”字元分解成复合笔划“丨”和笔划“一”、“”,称为三划字元;
“阝”字元分解成笔划“ㄋ”和“丨”,称为二划字元;
“丁”字元分解成笔划“一”和“亅”,称为二划字元;
“”复合笔划分解成笔划“一”和“丿”,称为二划复合笔划;
笔划“一”“丨”“ㄋ”“亅”分别为四、四、九、五段曲线段构成的笔划;
从附图1可知,“啊”字最终分解成四种不同的12个笔划,而每个笔划又由若干曲线段构成它的闭合轮廓线;最后对每个闭合曲线构成的图形进行填充处理。
附图2a所示“ㄋ”笔划由九条曲线段构成闭合曲线,而每条曲线又用曲线方程或折线段拟合。本节描述了一个由字、简字、复合字元、字元、复合笔划、笔划、曲线段七级结构的字库,为了描述和实现简便起见,将之合并为三级即字、字元、笔划〔含曲线段〕。
下面阐述三级字库编码方案的实例字结构编码一个字由若干个字元构成,对字的编码规则是先对仅含一个字元的字编码,接着对含二个字元的字编码,以此类推,约定一个字最多含七个字元,即最后对七元字编码,每元字号从1开始,依次往下编码。
字元结构编码一个字元由若干笔划组成,约定一个字元最多含15个笔划,对字元编码的规则是先对含2个笔划的字元编码,最后对15个笔划的元字编码,每划字元字元号从1到255。用一个字节数据表示字元号,可节省内存容量。
对笔划的编码笔划是各种大小形状不同的“横”、“竖”、“撇”、“捺”、“点”的封闭曲线,每个笔划由两条以上的曲线段组成;从1至255编码,也是用一个字节数据表示一个笔划号,笔划所含各曲线段的坐标点数据也用一个字节表示一个数。
三级结构24种字体汉字库的结构说明如下字结构级由汉字国标码经索引文件变换成为结构字编码,以字结构编码为序形成各字体公用的字结构文件,用以描述构成该字的字元数和每字元在字座标系下的位置、大小。
字元结构级由字体形状近似的字体公用一种字元结构,24种分为6类不同的字元宋体类字元、楷体类字元、圆体类字元、魏碑类字元、隶书类字元、行楷类字元;以每种字元结构编码为序形成各字体公用的字元结构文件,用以描述构成该字元的笔划数和每笔划在字元座标系下的位置、大小;
共用宋体类字元的字体包括细宋、标宋、大宋、书宋、大黑、中黑、细黑、仿宋、钢笔体字形;
共用楷体类字元的字体包括细楷、中楷、粗楷体字形;
共用圆体类字元的字体包括细圆、中圆、粗圆体字形;
共用魏碑体类字元的字体包括细、中、粗体魏碑字形;
共用隶书体类字元的字体包括细、中、粗隶书体字形;
共用行楷体类字元的字体包括细、中、粗行楷体字形。
笔划结构级每一种字体有一个笔划结构文件,24个笔划文件对应24种字体。
从以上结构图可知字结构文件为所有字体公用;而相似的字体共用字元结构文件;每一种字体有一个笔划文件;因此每增加一种字体只要增加一个笔划文件,根据实践可知一个笔划文件仅要不到10K字节的数据,从而非常经济,该字库共占750K字节,其中索引文件和简繁字结构文件占150K字节,每类字元不到60K字节,六类共360K字节,每个笔划文件不到10K字节,24种字体共占240K字节。
汉字字形产生模块工作流程如下国标汉字编码经索引文件可获取结构汉字编码,以结构汉字编码可换算该字含几个字元和在该元字中的字号,然后经字结构文件获取该字的各字元号等数据,根据各字元所含笔划数和字元号从字元文件中获取组成各字元的笔划号,最后从笔划文件获取构成各笔划的曲线段的参数经填充算法生成该汉字。
生成字结构文件、字元文件和笔划文件,必须建立各种座标系屏幕座标系〔对于显示〕,打印输出块座标系〔对于打印输出〕,字座标系,字元座标系,笔划坐标系;字形产生模块调用这些文件的数据经过坐标变换产生字形。
屏幕座标系以计算机VGA显示器〔12H模式〕为例,屏幕左上角为座标原点,过原点向下为Y轴,过原点向右为X轴,显示分辨率为640×480,因此屏幕右下角座标为〔639,479〕。
打印输出块座标系类似屏幕座标系,左上角为块座标原点,过原点向下为Y轴,过原点向右为X轴,右下角座标为〔块宽,块长〕;块宽只受物理设备的限制,块长可任意,在这个坐标系下可以打印任意超大汉字。
字座标系字座标系是相对于屏幕座标系〔对于显示〕打印块座标系〔对于打印〕下的相对座标系,原点为字的中心;用以描述256×256点大小的基准字。
字元座标系字元座标系是相对于字座标系的相对座标系,原点为字元的中心,在该坐标系下描述的基准字元为256×256点。
笔划座标系笔划座标系是相对于字元座标系的相对座标系,原点是笔划的中心,基准笔划为256×256点大小。
多级结构字库的设计方法步骤如下拆字进行字元的设置与字的编码确定构成字的字元,要设计多少字元,并对各字元在字库中重复使用的次数进行分析;确定每一个字由几个字元组成,并对字编码。
拆字元设置笔划并对字元编码同样,拆字元确定要设计多少笔划,对笔划设计定形;确定每一个字元由几个笔划组成,并对字元编码;分类出2-15划字元。
笔划的设计在256×256的方格纸上精确描述笔划图形,根据对曲线段的拟合方法将笔划分成若干曲线段,判读曲线段上特征点座标和该段特征值并记录下来输入计算机,用测试程序检验笔划的设计效果,然后设计定型并编码。
使用字库生成调试工具软件生成字库使用字元生成及调试程序生成和调试每一个字元,即二划至十五划字元文件等十四个文件,一一进行生成和调试。在笔划设计及字元生成调试完成后,使用字生成调试程序调试每一个字,当每一个字都调试完毕后,重新组合字结构文件,生成由国标码到结构字库编码的索引文件。使用字库测试修改程序对字库进行最后的测试和修改,直到达到正确、精确、美观的要求时,该字库即告完成。
笔划中的曲线段的拟合方法可以采用折线方法、贝塞尔二次曲线、二次和三次多项式逼近等方法拟合,不论采取何种拟的方法均把表示笔划的数据结构统一,即一个笔划用若干座标点表示,座标点数据的意义随拟合方法的不同而不同。折线拟合的曲线段数即是曲线段数,段数同点数;贝塞尔二次曲线拟合的段数正好是点数的一半,而且点数是偶数,偶数号点又正好是相邻两点的切线交点;二次多项式的段数与点数的关系同贝塞尔二次曲线,不同的是所取的点的位置不同;三次多项式逼近点数为段数的三倍。
笔划数据文件的格式如下约定每个字体的笔划数为200;约定笔划文件头占600个字节,每个笔划占3个字节,依笔划号次序排列;3个数据的内容是第一个字节为笔划含座标的点数,第二和第三字节合起来为该笔划的座标数据在文件中的起始位置,这种数据结构允许每一个笔划所含的点数为任意。
字元数据结构对所含每一笔划用5个字节表示,分别为笔划号、X和Y方向的缩放系数、笔划中心的X座标和Y座标;2划字元占10个字节数据;3划字元占15个字节数据;如此类推、15划字元占75个字节数据。
字的数据格式一元字用两个字节表示,内容分别为所含字元的笔划数和字元号;二元以上字对所含每一字元用6个字节表示,分别为各字元所含笔划数、字元号、X和Y方向的缩放系数、字元中心的X座标和Y座标;2元字占12个字节数据;3元字占18个字节数据;如此类推,五元字占30个字节数据。
国标码变换到结构字编码的索引文件的格式由国标码转换到汉字顺序号,国标码用两个字节表示一个汉字,设为C0、C1,定义为无符号字符型数,汉字顺序号=94×(C0-176)+C1-161,顺序号为0的是“啊”字,依此类推;索引文件格式按顺序号依次排列结构字号,结构字号,……,结构字号;根据汉字顺序号可查到结构汉字号,结构汉字号是按一元字、二元字、三元字、四元字、五元字等依次排序,又可根据结构汉字号求出该汉字所含的字元数和各字元号,这样就可以生成该字字形了。
在屏幕座标系下显示结构字的座标变换如下(1)在屏幕上显示字的调用参数格式一个字在屏幕上显示至少要8个参数,它们是结构字号,为一个正整数,两个字节表示,它是从汉字国标码转换而来的;
字体号,该参数表明该字用何字体显示;
X方向的缩放系数XS,为1-255的无符号整数;
Y方向的缩放系数YS,为1-255的无符号整数;
字中心的在屏幕座标系下X座标X0,为有符号的字符型整数;
字中心的在屏幕座标系下Y座标Y0,为有符号的字符型整数;
字的显示颜色;
字的显示方式(与、或、异或、直写)。
(2)在屏幕上显示一个字的座标变换在屏幕座标系下写一个字;
每一个字元的每一个笔划的各座标点由在字座标系到屏幕座标系的坐标变换公式如下Xkij=((X2i+XBi×X3j÷128)×XUk/128+Xk1)×XS/128+XO;
Ykij=((Y2i+YBi×Y3j÷128)×YUk/128+Yk1)×YS/128+YO;
式中,(X3j,Y3j)为i笔划各座标点在笔划座标系下的坐标,(Xkij,Ykij)为i笔划各座标点在字座标系下的坐标,(Xk1,Yk1)为第k字元中心在字座标下的座标,(XUk,YUk)为第k字元在X和Y方向上的缩放系数,(X2i,Y2i)为第k字元的第i笔划中心在该字元座标系下的座标,(XBi,YBi)为k字元的第i笔划在X和Y方向上的缩方系数,k=1-该字所含字元数;
i=1-第k字元所含的笔划数;
j=1-第k字元的第i笔划所含的点数;
(X0,Y0)为字中心在屏幕座标系下的座标;
XS为字显示在屏幕上X方向缩放系数;
YS为字显示在屏幕上Y方向缩放系数。
结构字库生成和调试工具主要有三个程序字元生成与调试、字生成与调试、字库生成与调试。
字元生成与调试程序流程见附图2b;
附图2b中(1)对话输入字元的笔划数及相应的字元文件名举例例如要生成调试3划字元,则输入3,然后输入3划字元文件名(该文件是拆字元分解为相应笔划后用文本编辑输入的);将磁盘文件读入字元数组;
附图2b中(8)将宋体以外相应笔划用异或方式清除,其含义是先仅调试宋体字元的各笔划,因而将其他字体的相应笔划清除,待宋体的该笔划基本调试好再显示其他字体的笔划,如不合适可反复调试,使每个笔划的大小和位置数据合理。
附图2b中(9)调用缩放模块的目的在于修改笔划在X和Y方向上的缩放系数,以使该笔划有合理的长宽;用↑↓→←键(小步缩放)及HOME END PUGEUP PUGEDOWN键(大步)调试缩放系数,直到满意为止;
附图2b中(10)调用平移模块的目的在于修改该笔划在字元座标系下的位置中心坐标,以使该字元的笔划分布合理,调试所用键同(9),键的意义表示平移增量。
字生成与调试程序流程见附图3;
附图3中(1)初始化的含义包括将各字体的笔划文件读入各笔划数组;
将各字体字元文件读入各字元数组;
输入该字结构含的字元数及相应的文件名;
读字结构文件数据送字结构数组;
设置显示方式为VGA模式。
附图3中(6)输入并显示样字是将用扫描仪或其他方式获取的标准字显示在屏幕上。
附图3中(8)屏幕处理包括将宋体以外相应字元用异或方式清除;
清除屏幕提示区。
附图3中(9)调用缩放和平移模块目的是修改各字元在X和Y方向上的缩放系数,以使字元划有合理的长宽;用↑↓→←键及HOME END PUGEUP PUGEDOWN键调试缩放系数,直到满意为止;
调用平移模块修改该字元在字座标系下的位置中心坐标,以使该字的各字元分布合理,调试所用键同缩放,键的意义表示平移增量。
字库的调试工具说明一个字库生成后需要测试,测试过程中往往要修改,例如将二元字改成三元字,这不但引起字库数据的改变,也引起字库结构的改变,因而同时要修改索引文件和文件头,使用程序自动修改很方便,具体流程见附图4。
附图4中(1)按装字库包括将要修改的字库文件调入内存,同时将字元文件及各字体笔划文件调入内存数组。
附图4中(6)更改则先从字结构文件中去掉该字结构数据并调整该字结构文件,修改该文件头。
附图4中(7)输入构成该字所含的新字元数目,例如从二元字改为三元字输入3,将含该字元数的最高字号加1分配给该字,并在字结构文件中分配数据区增加到该字结构文件,调整字结构文件并修改文件头、索引文件等。
多级结构字库的中文电脑操作系统设计总体设计说明如下本操作系统的设计是以多级结构字库技术为基础的,虽然其模块设置同传统的汉字操作系统大体相同,但由于字库结构的根本不同,因而各模块的设计就不同。
与传统的字库结构不同,多级结构多字体字库(字结构、字元、各笔划、索引等数据)是不可分割的整体,由此而必需一个与之相适应的字库管理与字形产生模块;该模块可直接被应用程序调用,也可被汉字显示管理模块与汉字打印输出管理模块调用;汉字显示管理模块可被汉字输入键盘管理模块调用;以上各模块均可直接用于应用程序。
上面说明了汉字操作系统所需的模块、模块间的相互关系以及它们同应用程序间的关系;从以上可知,汉字操作系统的设计依赖于字库,最基础的模块就是字库管理与字形产生模块,其它模块都要通过它来调用字库;字库管理将结构字库调入基本内存或扩展内存或扩充内存,然后建立一个软中断供字形产生模块使用,字形产生模块将根据汉字国标码从多级结构字库读取字结构数据,供汉字显示模块、汉字打印输出模块及应用程序使用;汉字显示管理模块一方面要根据字形产生模块提供的字形数据和应用的其它参数(例如显示位置、大小、颜色和方式等)显示在屏幕上,另一方面要将汉字显示功能附加到原来的显示中断10H里;汉字打印输出管理模块包括字形数据到打印缓冲区格式数据的转换和利用17H中断控制点阵打印机打印,使用结构字库可以显示或打印任意大小的字,只受到物理设备的限制,例如可以显示一屏幕大的字、可以打印长度任意而宽度为宽行纸所允许的宽度的一个字等而字形不变形无锯齿;汉字输入键盘管理模块管理汉字输入键盘、汉字输入处理和修改键盘中断管理16H。
下面是一个含5种字体多级结构字库的实例,5种字体都属于同一字元类,故共一个字元文件,所有类字体都公用一个字结构文件。
(1)五种字体的笔划①标宋体笔划,笔划编码1-200,笔划数据文件占7800字节,具体编码和形状如下(只列101-198)
②粗黑体笔划,笔划编码1-200,笔划数据文件占5800字节,具体编码和形状如下(只列1-100) ③书宋体笔划数据文件占7850字节,④细黑体笔划数据文件占5900字节,⑤钢笔体笔划数据文件占4800字节,具体编码和形状(略);
五种字体笔划数据文件共32150字节。
(2)宋体类字元,宋体类字元结构文件可为9种字体共用,上面5种字体都为宋体类,从2划字到15划字元如下2划字元71个占710字节,编码1到71,只列前20 3划字元156个,占2340字节,编码从1到156 4划字元217个,占4340字节,编码从1至217
5划字元200个,占5000字节,编码从1到200 6划字元230个,占6900字节,编码从1到230耒耳  亚虍 衣羊及米 7划字元174个,占6090字节,编码从1到174走走赤辰 辛 来我孚矣色佥 西 而 页虫8划字元149个,占5760字节,编码从1到149其 非 隹采采林 金 考参卒坚定宗多卖9划字元110个,占4950字节,编码从1到110差夌奏柔叔青齿 鱼单苗者昔咅果京兒疌奇10划字元107个,占5350字节,编码从1到107髟宾革音鬼度前帝查荅春宛胥宣俞枼爰周居易11划字元66个,占3630字节,编码从1到66 爱敖敖旁莫 复段真畐扁眉贵胡叟昷耑岛 12划字元49个,占2940字节,编码从1到49焦 票堇堂章鬲留唐骨曷黄叕 康斯鹿弯駦敢13划字元48个,占3120字节,编码从1到48黑黑番善童 敦高曹商婴咢散蒙惠尊啬隽奥桑14划字元31个,占2170字节,编码从1到31景廉粦阑雷朝最崩敬曼登禽覃喜曾鲁矞鼠意感
15划字元22个,占1650字节,编码从1到22葛辟敫需察禀署畺豊熏辟豪 睘侖 葛裹微蕤该字元结构数据共占55150字节。
(3)字结构文件,字结构文件含1到5元字一元结构字411个占822字节,从1到411,只列20个乘面阜食甚首弟重盾恭画荒柬家前宛俞宾南酋二元结构字4745个占56940字节,从1到4745编码缔颠滇点靛垫佃甸店淀碉雕掉钓调跌碟蝶谍盯,三元结构字1204个占21672字节,从1到1205编码蛤阁隔铬各给根跟埂耿梗功巩供拱贡钩沟狗垢四元结构字308个占7392字节,从1到308编码酃塾壅墀芡茇茺荸荼萆蒎蒽蒡甍蓰蕨蕺蕃薨薏五元结构字95个,占2850字节,从1到95顺序编码勉腻攀蔷燃傻舒蓑嚏停信燕殷应葬展噩侃龠黉国标基本级汉字结构字库字结构文件共占89676字节;
从国标码到结构字编码转换索引文件占13526字节;
综上所述,一个五字体的256×256点分辨率的多级结构字库共占存储容量为190502字节。
字库管理与字形产生模块的设计包括二个模块(1)结构字库驻留基本内存的模块准备工作先把字库测试完毕,将字结构文件、字元结构文件、各笔划文件合并成一个文件,并记下各自指针供字形产生模块使用、字库驻留内存流程见附图5。
附图5中⑥计算字库驻留的长度,并加上字形产生模块,以节为单位,(1节=16字节)。
附图5中⑦分配一个软中断给字形产生模块并设置该中断。
附图5中⑧使用INT21H的31H功能驻留退出。
字库可以使用INT15H中断AH=87H功能调到扩展内存,在有扩充内存和EMM驱动程序的计算机里可以使用INT67H中断将字库调扩充内存。
字形产生模块程序入口DX寄存器为国标码汉字,BL寄存器存放字体号;
返回参数DX0为结构字形数据(该字所含各字元,各字元所含各笔划,各笔划所含各坐标点所有该基准字的256×256点分辨率字形数据)。
程序流程见附图6。
汉字显示管理包括三个模块(1)汉字显示模块程序入口参数DS0为入口参数地址,入口参数汉字国标码C1、C2为两个字符,功能号BZ为一个字节整数,字体号ZT为一字节整数,字在屏幕座标系下的中心坐标(X0,Y0)为两个整数,字在X和Y方向上的缩放系数为两个正整数,显示颜色为一字节整数,显示方式为一字节整数;
出口参数无;
该模块调用字形产生模块获取基准字数据,然后将个笔划的各点座标转换到屏幕座标系下,调用填充模块将字按指定大小、颜色、方式和字体显示在指定位置上;
功能号BZ约定(0钢笔体字显示,1一般字显示,4超大字显示-即大于512×512点分辨率的大字显示;其它号为打印输出所用),字体号约定(1标宋,2粗黑,3书宋,4细黑,5仿宋……),模块流程附图7。
笔划填充模块程序入口参数座标点数S、各点座标值、显示颜色和方式;
出口参数无;
模块流程见附图8。
附图8中④求Y=YY的水平线与曲线段的交点,对于不同的曲线拟合方法求交点的方法基本相同,即将Y=YY代入曲线段的曲线方程,解方程对X求解。
附图8中⑤有交点记录该点的X座标,如果该点与曲线端点重合则判断该点的特性(极值点否)并记录特征值。
附图8中⑨以X座标的起点和终点、Y=YY、显示颜色和方式为入口参数调用划水平线函数划各条水平线(X座标在排序后两两交点间划水平线)。
(3)显示一个汉字串入口参数汉字串存放首地址、在屏幕上显示的左上点坐标、汉字的宽和长、字距、显示颜色和方式;
出口参数无;
汉字串可以以任意大小和显示颜色显示在屏幕的任意位置。
模块的流程见附图9。
显示中断10H增加汉字显示处理功能AH=20H为调用字形产生模块;
AH=21H为显示一个汉字;
AH=22H为显示一个汉字串。
汉字打印输出管理包括五个模块本管理是根据结构字库的特性而设计的,本字库字串可以以任意大小和任意长宽比例打印输出,本设计定义了打印输出块,以块作为打印的一个描述单位为用户提供了强有力的排版印刷输出功能,这个块的长度可以无限而宽度只受物理设备的限制,在块内的每个字或字串都可以以任意大小和任意长宽比例在块的任意位置打印输出而与编辑顺序无关,这与传统的行输出不同,但可以把行输出作为输出的特例处理,即块输出包含行输出,与该输出方法相对应的编辑程序称为“块编辑”。
(1)“打印输出块”编辑文件格式约定一个“打印输出块”文件包括块头,若干字串,字串含若干字;约定如下
①块头数据描述块头标志,用以区分不同的块;该块含要打印串数;该块的长度,用打印次数表示,实际长度为24×打印次数;该块的宽度,用打印机的行宽点数表示。
②字串头数据每串的字以相同的大小打印(不同则用另一串),可以是任意大小和在块的任意位置,字串头数据描述这些数据,共有7个数据分别为功能号BZ(2一般字打印,5大于256×256点分辨率的超大字打印,3一般字空心打印,6大于256×256点的超大字打印);字体号ZT(1标宋,2粗黑,3书宋,4细黑,5仿宋……);字串首字左上角在块内的座标(X0,Y0)为两个整数;字宽ZK;字长ZC;字距ZQ。
③汉字串国标码汉字串,紧跟在字串头控制数据之后。
④块大小的约定允许每块拥有100个串,每串100个汉字(国标码)。
“打印输出块”的块打印功能实现模块入口“打印输出块”文件名;
模块主要流程见附图10。
附图10中①打开数据文件读一块输出数据调入内存数组,设置一个控制块数组和一个字串块数组,控制块数组除了存放块头数据外,还为每串存放9个字控制数据。
附图10中④对每一串的每一个字循环,根据字串控制数据和该字在串中的相对号计算该字在块内的中心座标、X和Y方向的缩放系数、起始点的打印机缓冲区地址等。
汉字打印点位生成控制模块程序入口参数DS0为入口参数地址,出口参数将打印点位送打印缓冲区;
该模块调用字形产生模块获取基准字数据,然后将个笔划的各点座标转换到打印输出块座标系下,调用打印点位生成模块将字的24点长度和该字的宽度的点位数据送到为该字准备好的打印点位缓冲区里;一个长度超过了24点长的字打印要多次调用该模块;
打印缓冲区点位数据排列列顺序排列,一列24点为3个字节接下列3个字节。
模块流程见附图11。
打印点位生成模块程序入口参数功能号BZ、字体号ZT、字在打印块座标系下的中心坐标、字在X和Y方向上的缩放系数,该字打印次数号MN打印超大字时X和Y方向上的放大倍数XS、YS,该字打印点位缓冲区首地址、座标点数S、各点在打印块座标系下座标值;
出口参数将打印点位送缓冲区。
模块流程见附图10。
打印驱动程序打印输出24点长度的一行入口参数打印缓冲区首地址、打印行的宽度、功能号;
出口参数无;
使用17H中断对打印机初始化或打印24列的一行。
模块的流程见附图13。
汉字输入管理对字库的依赖相对少一点,它只是通过显示管理模块调用字库显示汉字提示,除此以外该设计均使用已有的技术,该设计包括键盘功能键约定、汉字输入编码方案和挂接方案、汉字输入显示屏幕介面设计、汉字输入键盘管理自举程序、键盘中断管理模块等,程序流程略。
权利要求
1.本多级结构字库技术其特征是将字向下细分为字、字元和笔划三级结构编码,即字结构编码、字元结构编码最终以字的笔划或曲线段作为基本单位描述生成计算机汉字字形,构成字库。
2.据权利要求1所述多级汉字字形字库编码中字结构编码字最多含有7个字元构成,先对仅含1个字元的字编码,最后对7字元字编码,每元字字号从1开始编码。所有字体共用这唯一字结构文件。
3.据权利要求1所述字元结构编码,一个字元最多含15个笔划,先对仅含2个笔划的字元编码,最后对含15个笔划的字元编码,每划字元号从1至255编码。形状相似的字体共用同一字元结构数据文件。
4.据权利要求1所述对笔划的编码和描述笔划为各种大小形状不同的封闭曲线,每个笔划由2条以上的曲线段组成,笔划号从1至255编码,每一种字体对应一种不同的笔划结构。
5.据权利要求1所述的多级结构字形字库在计算机上实现的生成汉字字形的数学模型的特征为设立一系列坐标系(屏幕坐标系或打印输出块坐标系、字坐标系、字元坐标系、笔划坐标系),经过若干坐标变换由曲线构成笔划、由笔划生成字元、由字元生成字最后在屏幕上显示或在打印机上输出。
6.结构字库生成和调试工具包括笔划的设计、字元数据文件的生成与调试程序、字的生成与调试程序、多级结构字库的生成与调试程序。
7.使用本多级结构字库技术设计的中文电脑操作系统的主要技术特点有字形产生模块产生256×256点分辨率的基准字数据;字形显示模块采用直接写屏的快速填充,可无级缩放显示任意大小的字形;打印输出模块定使义了用“打印输出块”概念,使排版印刷模块的实现变得很容易,多种字体的字库可同时驻留内存或扩存,可同多种汉字输入方案挂接。
8.据权利要求7所述汉字显示模块的实现使用多级结构字形产生模块提供的字结构、字元结构和笔划数据,进行一系列的座标变换,最后使用快速笔划填充模块显示汉字,实现了汉字显示的无级缩放且不变形无锯齿。
9.据权利要求7所述多级结构汉字系统的打印输出模块使用了“打印输出块坐标系”和“打印输出块”概念,使排版印刷变得简便容易实现,可在西文操作系统下使用本字库开发排版印刷系统应用,因字库省而使该具有超高精度的电子排版印刷系统设备造价低廉。
10.使用本多级结构字库技术可开发设计东方语言各国文字的高精度、多字体、高度省存储的计算机字库。
全文摘要
在计算机汉字信息处理技术领域中,中文电脑的基础是汉字字库,本多级结构字库技术是将字向下细分为字、字元和笔划三级编码,以字的笔划或曲线段作为基本单位描述生成计算机汉字字形,构成字库,能使高精度地描述字形达到高度节省存储容量的目的,字形精度越高、字体越多、字符集越大就越显示其优越性。从而解决中文字符集大字体多难于一次调入内存使用的难题,能使各种汉字信息处理应用系统都大大提高性能和降低造价。
文档编号G06F3/00GK1105762SQ9410347
公开日1995年7月26日 申请日期1994年4月15日 优先权日1994年4月15日
发明者曾冬初 申请人:曾冬初
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1