一种构建部件库的方法及装置制造方法

文档序号:6508231阅读:238来源:国知局
一种构建部件库的方法及装置制造方法
【专利摘要】本发明提供一种构建部件库的方法及装置,该方法包括以下步骤:获取字体风格为A的第一部件库;根据第一部件库中的各部件及其分别对应的字建立字符部件属性表;获取字体风格为B的第二字库;根据第二字库中字的轮廓信息,结合所述字符部件属性表来获取第二字库中字的部件的轮廓信息,最终生成第二字库的部件库。相应地,提供一种构建部件库的装置。该方法和装置能够有效提高部件库的构建效率,减少人工开发的工作量。
【专利说明】一种构建部件库的方法及装置

【技术领域】
[0001]本发明属于字库【技术领域】,具体涉及一种构建部件库的方法及装置。

【背景技术】
[0002]随着计算机技术的不断发展,对汉字信息化的需求日益增加,而汉字在计算机中是以字库的方式进行存储。汉字作为使用人数最多的文字,历史悠久、总量庞大,现存字符集标准已包含7万余字,而对于目前最常用的宋体,多数厂商现存字库收字数量多在2万多字,而具有其他字体风格的大部分字库通常仅包含6千多字,这远远不能满足人们对大字符集字库的需求。然而,现有的大部分字库的制作主要依赖人工、效率较低,所以越来越多的字体开发者们在寻求更加快捷、方便的字体制作方法。
[0003]由于汉字是一种具有结构的字符,其往往都是由偏旁,部首等组合而成,我们把这些偏旁部首等统称为部件,这样,汉字的数量虽然很庞大,但是组成汉字的部件却比较有限,为了快速扩充字库包含字符,提高做字的效率,现在字库制作者大多都是使用现有小字符集字库通过手工拆分的方式构建部件库,然后利用这个部件库实现小字符集字库到大字符集字库的扩充。但是,不同字库中的字体由于其笔形风格(即字体风格)不一样,所以部件库的数据也不一样,这样就存在一个问题,如果每一种字体都通过手工方式进行拆分以构建部件库,既浪费人力,又浪费时间,而且手工拆分过程中很容易出现错误,严重影响了大字符集字库的开发效率。


【发明内容】

[0004]本发明所要解决的技术问题是针对现有技术中存在的上述不足,提供一种能够有效提高部件库构建效率的构建部件库的方法及装置。
[0005]解决本发明技术问题所采用的技术方案是该构建部件库的方法,包括以下步骤:
[0006]获取字体风格为八的第一部件库;
[0007]根据第一部件库中的各部件及其分别对应的字以建立字符部件属性表,所述字符部件属性表包括多条信息,其中每一条信息表示一个字的构建属性;
[0008]获取字体风格为8的第二字库;
[0009]根据第二字库中字的轮廓信息,结合所述字符部件属性表来获取第二字库中字的部件的轮廓信息,并最终生成第二字库的部件库。
[0010]优选的是,获取字体风格为八的第一部件库之前还包括构建第一部件库的步骤,其具体包括:
[0011〕 获取字体风格为八的第一字库;以及
[0012]对所述第一字库中的字进行拆分,以形成所述第一部件库。
[0013]进一步优选的是,在获取字体风格为八的第一字库之前,还包括:构建所述第一字库。
[0014]优选的是,根据第一部件库中的各部件及其分别对应的字建立字符部件属性表具体包括:
[0015]根据第一部件库中的各部件找出各部件所分别对应的字,并生成部件一字符对照表;
[0016]根据所述部件一字符对照表生成字符一部件对照表;以及
[0017]根据字符一部件对照表生成所述字符部件属性表。
[0018]优选的是,在获取字体风格为8的第二字库之前,还包括:构建所述第二字库。
[0019]其中,所述字符部件属性表中的每一条信息包括单个字的字符编码、结构编码,以及组成该字的一个或多个部件各自的部件编码;
[0020]根据第二字库中字的轮廓信息,结合所述字符部件属性表来获取第二字库中字的部件的轮廓信息,最终生成第二字库的部件库具体步骤是:根据第二字库中字的轮廓信息,结合所述字符部件属性表来获取该字中所包含部件的部件编码,再根据所述部件编码来获取第一部件库中该部件的轮廓信息,进而根据第二字库中该字的轮廓信息获取当前部件的轮廓信息,最终生成第二字库的部件库。
[0021]进一步优选的是,所述第二字库包括有与所述字符部件属性表中各字符编码所分别对应的字。
[0022]一种构建部件库的装置,包括:
[0023]第一获取单元,用于获取字体风格为八的第一部件库;
[0024]字符部件属性表构建单元,用于根据第一部件库中的各部件及其分别对应的字建立字符部件属性表,所述字符部件属性表包括多条信息,其中每一条信息表示一个字的构建属性,每一条信息包括该字的字符编码、结构编码,以及组成该字的一个或多个部件各自的部件编码;
[0025]第二获取单元,用于获取字体风格为8的第二字库;
[0026]部件库构建单元,用于根据第二字库中字的轮廓信息,结合所述字符部件属性表来获取第二字库中字的部件的轮廓信息,并最终生成第二字库的部件库。
[0027]优选的是,该装置还包括:
[0028]第三获取单元,用于获取字体风格为八的第一字库;
[0029]拆分单元,用于对所述第一字库中的字进行拆分,以形成所述第一部件库。
[0030]进一步优选的是,该装置还包括:
[0031〕 第一字库构建单元,用于构建所述第一字库。
[0032]优选的是,该装置还包括:
[0033]第二字库构建单元,用于构建所述第二字库。
[0034]本发明的有益效果如下:
[0035]本发明通过现有的某一字体的部件库以及一种新字体的字库,就能快速构建所述新字体的部件库,从而可以大大提高部件库的构建效率,节约人力、提高了部件库的开发效率,同时也提高了部件库数据的准确度,进而可以快速的扩充该字体字库字符集,减少人工开发的工作量,降低了成本,有效地提高了字库的开发效率。
[0036]本发明方法简单易行,复用性比较好。

【专利附图】

【附图说明】
[0037]图1为本发明实施例2中构建部件库的方法的流程图;
[0038]图2是本发明实施例2的方法中步骤36的流程图。

【具体实施方式】
[0039]为使本领域技术人员更好地理解本发明的技术方案,下面结合附图对本发明作进一步详细描述。
[0040]实施例1:
[0041]本实施例提供一种构建部件库的方法,包括以下步骤:
[0042]获取字体风格为八的第一部件库;
[0043]根据第一部件库中的各部件及其分别对应的字以建立字符部件属性表,所述字符部件属性表包括多条信息,其中每一条信息表示一个字的构建属性;
[0044]获取字体风格为8的第二字库;
[0045]根据第二字库中字的轮廓信息,结合所述字符部件属性表来获取第二字库中字的部件的轮廓信息,最终生成第二字库的部件库。
[0046]本实施例还提供一种构建部件库的装置,包括:
[0047]第一获取单元,用于获取字体风格为八的第一部件库;
[0048]字符部件属性表构建单元,用于根据第一部件库中的各部件及其分别对应的字建立字符部件属性表,所述字符部件属性表包括多条信息,其中每一条信息表示一个字的构建属性;
[0049]第二获取单元,用于获取字体风格为8的第二字库;
[0050]部件库构建单元,用于根据第二字库中字的轮廓信息,结合所述字符部件属性表来获取第二字库中字的部件的轮廓信息,最终生成第二字库的部件库。
[0051]本实施例中,所述字指的是包括至少一个字部件且具有一定结构的字,例如汉字、韩文字、日文字等。
[0052]实施例2:
[0053]如图1所示,本实施例提供一种构建部件库的方法,其包括以下步骤:
[0054]步骤31:构建字体风格为八的第一部件库。
[0055]本实施例中示例的字具体为汉字,其中,第一部件库中的部件的字体风格具体为宋体风格,也就是说,第一部件库为宋体部件库。所述宋体部件库的构建过程如下:
[0056]获取现有的宋体字库,利用现有的字体开发工具读取所述宋体字库,并对其中的字符进行拆分(可以是手动拆分),从而得到宋体部件库。拆分时,具体可以按照汉字的基本结构来进行拆分,如,将“弩”字拆成上下两部分“奴”和“弓”,也可以拆成三部分“女”、“又”和“弓”。
[0057]具体地,可以参照13010646标准中的103属性的结构编码,并根据103属性来对汉字的结构进行拆分,该103属性是一种对汉字结构进行划分的属性,可以将汉字划分为不同的结构,如左右结构、上下结构、左中右结构、包围结构、半包围结构等。
[0058]步骤32:获取所述第一部件库。
[0059]具体地,本实施例中,借助字体开发工具来具体获取步骤31中构建的宋体部件库。
[0060]步骤33:根据第一部件库中的各部件及其分别对应的字建立字符部件属性表。
[0061]本实施例中,建立字符部件属性表的步骤具体包括:
[0062]第一步,根据第一部件库(包括多个部件)找出各部件所分别对应的字,并生成部件一字符对照表。
[0063]具体地,根据所获取的宋体部件库,人工整理出部件一字符对照表。所述部件一字符对照表中示出了第一部件库中每个部件与其所在字符之间的映射关系,即每个部件来源于哪个字符,并生成字符编码表(生成字符编码表是为后面构建第二字库而用的,以确定第二字库中应包含的字符集
[0064]其中,由于宋体部件库中的每一个部件都可能存在对应一个或多个字符。比如,部件“土”对应“坛”字,部件“云”也对应“坛”字。由于上述情况的存在,因此生成的字符编码表应该是一个去重的字符编码表。
[0065]第二步,根据所述部件一字符对照表生成字符一部件对照表。
[0066]具体地,根据所述部件一字符对照表以及字符编码表,可以整理得到字符一部件对照表。所述字符一部件对照表中示出了所述字符编码表中各个字符与其拆分后得到的一个或多个部件之间的映射关系。如“坛”字对应的部件有两个,分别是“土”和“云”。
[0067]第三步,根据字符一部件对照表生成所述字符部件属性表。
[0068]其中,所述字符部件属性表包括有多条信息,每一条信息示出了所述字符编码表中一个字的构建属性,每一条信息包括该字的字符编码、结构编码,以及组成该字的一个或多个部件各自的部件编码。
[0069]本实施例中,字符编码具体可以为口111(30(16编码。当然,字符编码也可以采用自定义编码。
[0070]本实施例中,结构编码采用采用自定义的方式,比如使用00表示左右结构、01表示上下结构、02表示左中右结构。字符中各个部件的部件编码的排列顺序根据字符的结构按照从上到下,从左到右的顺序进行排列。
[0071]这样,字符部件属性表中每一条信息记录的格式为“字符编码-结构编码-第一个部件编码-第二个部件编码-…-第II个部件编码”。如字符“坛”的字符部件属性信息记录为5758-00-571?-4291 ;字符“坛”的字符部件属性信息记录为5758-00-571?-4291 ;如字符“粥”的字符部件属性信息记录为:7015-02-5513-7(:73-51^30
[0072]步骤34:构建字体风格为8的第二字库。
[0073]利用字体开发工具比如?如让处等来开发第二字库,所开发的第二字库中的字体风格区别于宋体字库。本实施例中,第二字库具体是一套楷体风格的楷体字库,该字库中最好包含步骤33中所生成的字符编码表中的所有字符。
[0074]步骤35:获取所述第二字库。
[0075]本实施例中,具体是通过字体开发工具来获取所述第二字库。
[0076]其中,步骤34-步骤35与步骤31-步骤33之间无位置顺利关系,步骤34-步骤35既可以在步骤31-步骤33之后,也可以在步骤31-步骤33之前,或者与步骤31-步骤33同时进行。
[0077]步骤36:根据第二字库中字的轮廓信息,结合所述字符部件属性表来获取该字中所包含部件的部件编码,再根据所述部件编码来获取第一部件库中该部件的轮廓信息,进而可以根据第二字库中该字的轮廓信息来获取当前部件的轮廓信息,并最终生成第二字库的部件库。
[0078]具体地,读取楷体字库中楷体字的轮廓数据,在所述字符部件属性表中找到该字所在的该条信息,然后读取该条信息中该字符包含的部件编码,然后根据所述部件编码来获取宋体部件库中该部件的轮廓信息(即闭合回路个数),进而可以根据已读取的楷体字库中该字的轮廓数据获取到当前部件的轮廓数据,即形成该部件。
[0079]通过重复执行步骤36,从而可以读取第二字库中的所有字,并依照上述方式,使第二字库中所有字的每一个部件都按照上述方式来获取其轮廓数据,从而可以生成第二字库的部件库。具体地,在本实施例中,通过重复上述步骤,可以得到楷体字库中所有字拆分后的部件,最终可以获得楷体风格的楷体部件库。
[0080]本实施例通过上述步骤,实现了一种快速构建汉字部件库的方法。因此,本发明可以利用现有的某一字体部件库和其他风格字体的字库,快速构建与之对应的部件库,进而可以快速的扩充其他字体字库字符集,减少了人工开发的工作量,降低了成本,提高了字体的开发效率。
[0081]实施例3:
[0082]本实施例提供一种构建部件库的装置,包括:
[0083]第一获取单元,用于获取字体风格为八的第一部件库;
[0084]字符部件属性表构建单元,用于根据第一部件库中的各部件及其分别对应的字建立字符部件属性表,所述字符部件属性表包括多条信息,其中每一条信息表示一个字的构建属性,每一条信息包括该字的字符编码、结构编码,以及组成该字的一个或多个部件各自的部件编码;
[0085]第二获取单元,用于获取字体风格为8的第二字库;
[0086]部件库构建单元,用于根据第二字库中字的轮廓信息,结合所述字符部件属性表来获取第二字库中字的部件的轮廓信息,最终生成第二字库的部件库。
[0087]具体地,部件库构建单元用于根据第二字库中字的轮廓信息,结合所述字符部件属性表来获取该字中所包含部件的部件编码,再根据所述部件编码来获取第一部件库中该部件的轮廓信息,进而可以从第二字库中该字的轮廓信息中获取当前部件的轮廓信息,并最终生成第二字库的部件库。
[0088]优选的是,该装置还包括:
[0089]第三获取单元,用于获取字体风格为八的第一字库;
[0090]拆分单元,用于对所述第一字库中的字进行拆分,以形成所述第一部件库。
[0091]优选的是,该装置还包括:
[0092]第一字库构建单元,用于构建所述第一字库。
[0093]优选的是,该装置还包括:
[0094]第二字库构建单元,用于构建所述第二字库。
[0095]实施例4:
[0096]本实施例提供一种构建部件库的方法,该方法与实施例2中的方法区别在于:本实施例中不具有步骤31,即本方法中的第一部件库是直接选用现有的宋体部件库。
[0097]本实施例中方法的其他步骤均与实施例2相同,这里不再赘述。
[0098]实施例5:
[0099]本实施例提供一种构建部件库的方法,该方法与实施例2中的方法区别在于:本实施例中不具有步骤54,即本方法中的第二字库是直接选用现有的字库。
[0100]优选的是,该现有的字库包括所述字符部件属性表中的所有字符。
[0101]本实施例中方法的其他步骤均与实施例2相同,这里不再赘述。
[0102]实施例6:
[0103]本实施例提供一种制作中间字库的方法,该方法与实施例2中的方法区别在于:本实施例中采用的字库不是汉字字库,而是日文字库;所采用的部件库不是汉字部件库,而是日文部件库。
[0104]本实施例中方法的其他步骤均与实施例2相同,这里不再赘述。
[0105]可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
【权利要求】
1.一种构建部件库的方法,包括以下步骤: 获取字体风格为A的第一部件库; 根据第一部件库中的各部件及其分别对应的字以建立字符部件属性表,所述字符部件属性表包括多条信息,其中每一条信息表示一个字的构建属性; 获取字体风格为B的第二字库; 根据第二字库中字的轮廓信息,结合所述字符部件属性表来获取第二字库中字的部件的轮廓信息,最终生成第二字库的部件库。
2.根据权利要求1所述的方法,其特征在于,获取字体风格为A的第一部件库之前还包括构建第一部件库的步骤,该步骤具体包括: 获取字体风格为A的第一字库; 对所述第一字库中的字进行拆分,以形成所述第一部件库。
3.根据权利要求2所述的方法,其特征在于,在获取字体风格为A的第一字库之前,还包括: 构建所述第一字库。
4.根据权利要求1所述的方法,其特征在于,根据第一部件库中的各部件及其分别对应的字建立字符部件属性表具体包括: 根据第一部件库中的各部件找出各部件所分别对应的字,并生成部件一字符对照表; 根据所述部件一字符对照表生成字符一部件对照表; 根据字符一部件对照表生成所述字符部件属性表。
5.根据权利要求1-4之一所述的方法,其特征在于,在获取字体风格为B的第二字库之前,还包括: 构建所述第二字库。
6.根据权利要求1-4之一所述的方法,其特征在于, 所述字符部件属性表中的每一条信息包括单个字的字符编码、结构编码,以及组成该字的一个或多个部件各自的部件编码; 根据第二字库中字的轮廓信息,结合所述字符部件属性表来获取第二字库中字的部件的轮廓信息,最终生成第二字库的部件库具体步骤是:根据第二字库中字的轮廓信息,结合所述字符部件属性表来获取该字中所包含部件的部件编码,再根据所述部件编码来获取第一部件库中该部件的轮廓信息,进而根据第二字库中该字的轮廓信息获取当前部件的轮廓信息,最终生成第二字库的部件库。
7.根据权利要求6所述的方法,其特征在于,所述第二字库包括有与所述字符部件属性表中的各字符编码所分别对应的字。
8.—种构建部件库的装置,其特征在于,包括: 第一获取单元,用于获取字体风格为A的第一部件库; 字符部件属性表构建单元,用于根据第一部件库中的各部件及其分别对应的字建立字符部件属性表,所述字符部件属性表包括多条信息,其中每一条信息表示一个字的构建属性; 第二获取单元,用于获取字体风格为B的第二字库; 部件库构建单元,用于根据第二字库中字的轮廓信息,结合所述字符部件属性表来获取第二字库中字的部件的轮廓信息,最终生成第二字库的部件库。
9.根据权利要求8所述的装置,其特征在于,该装置还包括: 第三获取单元,用于获取字体风格为A的第一字库; 拆分单元,用于对所述第一字库中的字进行拆分,以形成所述第一部件库。
10.根据权利要求9所述的装置,其特征在于,该装置还包括: 第一字库构建单兀,用于构建所述第一字库。
11.根据权利要求8-10之一所述的装置,其特征在于,该装置还包括: 第二字库构建单元,用于构建所述第二字库。
【文档编号】G06F17/30GK104424195SQ201310364869
【公开日】2015年3月18日 申请日期:2013年8月20日 优先权日:2013年8月20日
【发明者】张国荣, 唐英敏 申请人:北大方正集团有限公司, 方正信息产业控股有限公司, 北京北大方正电子有限公司, 北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1