基于骨架线的做字方法和装置与流程

文档序号:14943336发布日期:2018-07-17 06:07阅读:177来源:国知局

本发明涉及字库技术处理技术领域,尤其涉及一种基于骨架线的做字方法和装置。



背景技术:

随着信息化的不断发展,对汉字信息化的需求日益增加,汉字在计算机中以字库方式存储。汉字的数量总量庞大,一款字库一般至少需要包括6763个最常用的汉字,部分字库厂商为了更好的满足用字需要一款字库收字数量达到27000多字。为了满足字体越来越大的市场需求,我们正在通过各种方式提高做字效率。

现有技术中的自动拼字方法大多数采用的是直接对部件字形轮廓数据进行缩放,进而完成新字符的拼字处理,这样会导致轮廓在缩放过程中会出现不同程度的变形,为了避免缩放过程中的变形,我们通常处理方式是同一个字形部件会提供多个不同大小的子部件,图1为现有技术中提供的部件库,如图1所示,构建出一个冗余的部件库。

然而现有技术中,如果字库的质量要求比较高,就需要构建包括足够多的子部件,这样就大大的增加字体开发的工作量,影响字体开发效率,同时还无法完全避免笔形变形的问题。



技术实现要素:

本发明提供一种基于骨架线的做字方法和装置,用以解决现有技术中的问题。

本发明的一方面是提供一种基于骨架线的做字方法,包括:

获取基础字符集,基础字符集中包括至少一个字符;

根据基础字符集的各字符,构建部件库,其中,部件库中包括至少一个部件,每一个部件包括部件骨架线信息,部件骨架线信息包括至少一个笔画,每一个笔画包括第一笔触宽度和骨架线坐标点;

根据待开发字体的风格,选择与待开发字体的风格相似的组字模板,其中,组字模板包括将要自动生成字符的字符组字信息,每一个字符组字信息包括组成部件信息,所述组成部件信息描述了部件及部件变换信息;

根据部件库中的部件骨架线信息、以及组字模板中的组成部件信息,将组字模板中的各字符变换为待开发字体的字符集。

如上所述的方法中,所述根据基础字符集的各字符,构建部件库,包括:

从基础字符集中抽取组成字符的各部件,以构成部件库。

如上所述的方法中,组成部件信息包括:部件变换信息;

所述根据部件库中的部件骨架线信息、以及组字模板中的组成部件信息,将组字模板的各字符变换为待开发字体的字符集,包括:

从部件库中获取当前字符的各部件的部件骨架线信息,根据组字模板中的变换信息针对每一个部件进行处理,将部件库中的各部件变换到待开发字体的目标部件上,以将组字模板中的各字符变换为待开发字体的字符集。

如上所述的方法中,所述将部件库中的各部件变换到待开发字体的目标部件上,包括:

将部件库中的部件的各笔画的骨架线坐标点p0(x0,y0),变换至待开发字体的目标部件的各笔画的轮廓点p(x,y)上,其中,(x,y)=(x0,y0)*mat2+(xoffset,yoffset),mat2是一个二维变换矩阵描述部件的缩放、旋转等参数信息,xoffset表示x方向的偏移,yoffset表示y方向的偏移;

将部件库中的部件的各笔画的第一笔触宽度,变换为待开发字体的目标部件的各笔画的第二笔触宽度,其中,第二笔触宽度w为第一笔触宽度,x为部件横向缩放比例,y为部件纵向缩放比例。

如上所述的方法中,在所述根据部件库中的部件骨架线信息、以及组字模板中的组成部件信息,将组字模板中的各字符变换为待开发字体的字符集之后,还包括:

将基础字符集和待开发字体的字符集进行整合,构成整合字符集;

对整合字符集进行修正,以构成修正后的整合字符集。

本发明的另一方面是提供一种基于骨架线的做字装置,包括:

获取模块,用于获取基础字符集,基础字符集中包括至少一个字符;

构建模块,用于根据基础字符集的各字符,构建部件库,其中,部件库中包括至少一个部件,每一个部件包括部件骨架线信息,部件骨架线信息包括至少一个笔画,每一个笔画包括第一笔触宽度和骨架线坐标点;

选择模块,用于根据待开发字体的风格,选择与待开发字体的风格相似的组字模板,其中,组字模板包括将要自动生成字符的字符组字信息,每一个字符组字信息包括组成部件信息,所述组成部件信息描述了部件及部件变换信息;

变换模块,用于根据部件库中的部件骨架线信息、以及组字模板中的组成部件信息,将组字模板中的各字符变换为待开发字体的字符集。

如上所述的装置中,所述构建模块,具体用于:

从基础字符集中抽取组成字符的各部件,以构成部件库。

如上所述的装置中,组成部件信息包括:部件变换信息;

所述变换模块,具体用于:

从部件库中获取当前字符的各部件的部件骨架线信息,根据组字模板中的变换信息针对每一个部件进行处理,将部件库中的各部件变换到待开发字体的目标部件上,以将组字模板中的各字符变换为待开发字体的字符集。

如上所述的装置中,所述变换模块,具体用于:

从部件库中获取当前字符的各部件的部件骨架线信息,根据组字模板中的变换信息针对每一个部件进行处理,将部件库中的部件的各笔画的骨架线坐标点p0(x0,y0),变换至待开发字体的目标部件的各笔画的轮廓点p(x,y)上,其中,(x,y)=(x0,y0)*mat2+(xoffset,yoffset),mat2是一个二维变换矩阵描述部件的缩放、旋转等参数信息,xoffset表示x方向的偏移,yoffset表示y方向的偏移;

将部件库中的部件的各笔画的第一笔触宽度,变换为待开发字体的目标部件的各笔画的第二笔触宽度,其中,第二笔触宽度w为第一笔触宽度,x为部件横向缩放比例,y为部件纵向缩放比例。

如上所述的装置中,还包括:

整合模块,用于在所述变换模块根据部件库中的部件骨架线信息、以及组字模板中的组成部件信息,将组字模板中的各字符变换为待开发字体的字符集之后,将基础字符集和待开发字体的字符集进行整合,构成整合字符集;对整合字符集进行修正,以构成修正后的整合字符集。

本发明的技术效果是:通过获取基础字符集,基础字符集中包括至少一个字符;根据基础字符集的各字符,构建部件库,其中,部件库中包括至少一个部件,每一个部件包括部件骨架线信息,部件骨架线信息包括至少一个笔画,每一个笔画包括第一笔触宽度和骨架线坐标点;根据待开发字体的风格,选择与待开发字体的风格相似的组字模板,其中,组字模板包括将要自动生成字符的字符组字信息,每一个字符组字信息包括组成部件信息,组成部件信息描述了部件及部件变换信息;根据部件库中的部件骨架线信息、以及组字模板中的组成部件信息,将组字模板中的各字符变换为待开发字体的字符集。从而设计制作更少的汉字字符,投入更少的人力,提高了字符制作效率,减少了做字时间,降低了做字成本;同时,由于直接使用原始部件的骨架线和笔画笔触数据进行组字,既保证了字体笔形风格,同时也改善了现有自动拼字过程中笔画变形的问题,使得结果字库字形风格更加统一,提高了字库开发的工作效率,保证了成品字库的最终质量。

附图说明

图1为现有技术中提供的部件库;

图2为本发明实施例一提供的基于骨架线的做字方法的流程图;

图3为本发明实施例一提供的基于骨架线的做字方法中字符“微”的字形骨架线的示意图;

图4为本发明实施例一提供的基于骨架线的做字方法中字符“微”的字形笔触的示意图;

图5为本发明实施例二提供的基于骨架线的做字方法的流程图;

图6为本发明实施例二提供的基于骨架线的做字方法中的部件“亻”和“犭”的骨架线和笔触信息的示意图;

图7为本发明实施例二提供的基于骨架线的做字方法中的自动做字的效果示意图;

图8为本发明实施例三提供的基于骨架线的做字装置的结构示意图;

图9为本发明实施例四提供的基于骨架线的做字装置的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图2为本发明实施例一提供的基于骨架线的做字方法的流程图,如图2所示,本实施例的方法包括:

步骤101、获取基础字符集,基础字符集中包括至少一个字符。

在本实施例中,具体的,获取基础字符集,在该基础字符集中包括至少一个字符。每一个字符包括字符编码、字形骨架线和字形笔触信息。该基础字符集是后面构建部件库的基础,该基础字符集的字体风格将会是最终字库的字体风格。

具体来说,可以使用adobeillustrator软件设计制作基础字符集,字体设计确定字体风格,确定开发字体是gb2312字符集,基础字符集gb2312字符集对应的基础字符集;设计并制作基础字符集中的每一个字符,其中字符编码采用unicode编码,图3为本发明实施例一提供的基于骨架线的做字方法中字符“微”的字形骨架线的示意图,如图3所示,字符“微”的字形骨架线,图4为本发明实施例一提供的基于骨架线的做字方法中字符“微”的字形笔触的示意图,如图4所示,字符“微”字形笔触。

步骤102、根据基础字符集的各字符,构建部件库,其中,部件库中包括至少一个部件,每一个部件包括部件骨架线信息,部件骨架线信息包括至少一个笔画,每一个笔画包括第一笔触宽度和骨架线坐标点。

在本实施例中,具体的,根据基础字符集的各字符,构建部件库;其中,部件库中包括至少一个部件,每一个部件包括部件标识码、部件骨架线信息,每一个部件由至少一个笔画构成,从而,部件骨架线信息包括至少一个笔画,每一个笔画包括笔触编号、笔触宽度和骨架线坐标点。

步骤103、根据待开发字体的风格,选择与待开发字体的风格相似的组字模板,其中,组字模板包括将要自动生成字符的字符组字信息,每一个字符组字信息包括组成部件信息,组成部件信息描述了部件及部件变换信息。

在本实施例中,具体的,根据待开发字体的风格,选择与待开发字体的风格相似的组字模板,其中,组字模板包括将要自动生成字符的字符组字信息,每一个字符组字信息包括字符编码、组成部件信息,组成部件信息描述了部件以及部件变换信息,例如偏移参数信息、缩放参数信息、旋转参数信息。

其中组成部件信息包括部件标识码、部件变换信息。部件变换信息描述了该字符中的部件的偏移、缩放以及旋转等参数信息,具体表述如下,构造一个二维变换矩阵:mat2=a11a12a21a22,用来表示部件的旋转、倾斜和缩放变换,采用xoffset表示相应的x方向的平移变换,yoffset表示相应的y方向的平移变换。

举例来说,选择黑体模型库,为与待开发字体的风格相似的组字模板。黑体模型库中包括gb2312字符集去除基础字符集以外的字符拼字模板。每个字符拼字模板包括字符编码、组成字符的部件编码和对应的变换数据,该变换数据为部件变换信息。字符的部件顺序按照汉字的结构从左到右、从上到下描述,部件的部件变换信息描述了该部件的偏移、缩放信息。字符“微”的模板信息描述如下表1。

表1字符“微”的模板信息

步骤104、根据部件库中的部件骨架线信息、以及组字模板中的组成部件信息,将组字模板中的各字符变换为待开发字体的字符集。

在本实施例中,具体的,根据步骤102中部件库中的部件骨架线信息、以及步骤103中组字模板中的组成部件信息,从而将组字模板中的各字符变换为待开发字体的字符集。

本实施例通过获取基础字符集,基础字符集中包括至少一个字符;根据基础字符集的各字符,构建部件库,其中,部件库中包括至少一个部件,每一个部件包括部件骨架线信息,部件骨架线信息包括至少一个笔画,每一个笔画包括第一笔触宽度和骨架线坐标点;根据待开发字体的风格,选择与待开发字体的风格相似的组字模板,其中,组字模板包括将要自动生成字符的字符组字信息,每一个字符组字信息包括组成部件信息,组成部件信息描述了部件及部件变换信息;根据部件库中的部件骨架线信息、以及组字模板中的组成部件信息,将组字模板中的各字符变换为待开发字体的字符集。从而设计制作更少的汉字字符,投入更少的人力,提高了字符制作效率,减少了做字时间,降低了做字成本;同时,由于直接使用原始部件的骨架线和笔画笔触数据进行组字,既保证了字体笔形风格,同时也改善了现有自动拼字过程中笔画变形的问题,使得结果字库字形风格更加统一,提高了字库开发的工作效率,保证了成品字库的最终质量。

图5为本发明实施例二提供的基于骨架线的做字方法的流程图,在实施例一的基础上,如图5所示,本实施例的方法,步骤102,具体包括:

从基础字符集中抽取组成字符的各部件,以构成部件库。

在本实施例中,具体的,从基础字符集中抽取组成字符的各部件,以构成部件库。从而得到的部件库会包括多个部件。每一个部件包括:部件标识码、部件骨架线信息,部件骨架线信息包括至少一个笔画,每一个笔画包括第一笔触宽度、笔触信息、和骨架线坐标点。

具体来说,可以从已做好的基础字符集中自动拆分所有字符的部件,然后进行相似性合并,每个字形的字符保留一个部件,形成部件库。从而每一个部件包括:部件标识码、字形骨架线、笔触和第一笔触宽度。

举例来说,图6为本发明实施例二提供的基于骨架线的做字方法中的部件“亻”和“犭”的骨架线和笔触信息的示意图。部件“亻”和“犭”的信息如下表2。

表2部件“亻”和“犭”的信息

组成部件信息包括:部件变换信息,部件变换信息包括了字符中的部件的偏移参数信息、缩放参数信息、旋转参数信息;

步骤104,具体包括:

从部件库中获取当前字符的各部件的部件骨架线信息,根据组字模板中的变换信息针对每一个部件进行处理,将部件库中的各部件变换到待开发字体的目标部件上,以将组字模板中的各字符变换为待开发字体的字符集。

其中,将部件库中的各部件变换到待开发字体的目标部件上,包括:

将部件库中的部件的各笔画的骨架线坐标点p0(x0,y0),变换至待开发字体的目标部件的各笔画的轮廓点p(x,y)上,其中,(x,y)=(x0,y0)*mat2+(xoffset,yoffset),mat2是一个二维变换矩阵描述部件的缩放、旋转等参数信息,xoffset表示x方向的偏移,yoffset表示y方向的偏移;

将部件库中的部件的各笔画的第一笔触宽度,变换为待开发字体的目标部件的各笔画的第二笔触宽度,其中,第二笔触宽度w为第一笔触宽度,x为部件横向缩放比例,y为部件纵向缩放比例。

在本实施例中,具体的,组字模板包括将要自动生成字符的字符组字信息,每一个字符组字信息包括字符编码、组成部件信息,其中,组成部件信息包括部件标识码、部件变换信息,部件变换信息包括了字符中的部件的偏移参数信息、缩放参数信息、旋转参数信息,根据部件变换信息构建了二维变换矩阵mat2=a11a12a21a22,用来表示部件的旋转、倾斜和缩放变换,用xoffset和yoffset表示相应的平移变换。

然后,根据部件库、组字模板,生成待开发字体的字符集。具体包括:从部件库中获取当前字符的各部件的部件骨架线信息,根据组字模板中的变换信息针对每一个部件进行处理,将部件库中的各部件变换到待开发字体的目标部件上,以将组字模板中的各字符变换为待开发字体的字符集。待开发字体的字符集中包括的字符,与步骤103中的组字模板的字符一致。

具体来说,将部件库中的各部件变换到待开发字体的目标部件上分为两部分。一部分是骨架线的变换,对骨架线的每一个坐标点进行变换,将部件库中的部件的各笔画的骨架线坐标点p0(x0,y0),变换至待开发字体的目标部件的各笔画的轮廓点p(x,y)上,其中,(x,y)=(x0,y0)*mat2+(xoffset,yoffset),mat2是一个二维变换矩阵描述部件的缩放、旋转等参数信息,可以得到(x,y)=(x0+x0*xscale,y0+y0*yscale)+(xoffset,yoffset),xscale表示x方向的缩放值,yscale表示y方向的缩放值,xoffset表示x方向的偏移,yoffset表示y方向的偏移。另一部分是笔触的变换,字体的笔触存在一定的宽度,当笔画骨架线进行缩放变化时,需要将相应的笔触宽度同时进行缩放变换,字体笔触宽度变换的计算方法如下:设部件横向缩放比例为x,部件纵向缩放比例为y,将部件库中的部件的各笔画的第一笔触宽度,变换为待开发字体的目标部件的各笔画的第二笔触宽度其中,w为第一笔触宽度。图7为本发明实施例二提供的基于骨架线的做字方法中的自动做字的效果示意图,如图7所示,上半部分是骨架线变换后效果,下半部分是增加了笔触变换处理后的最终做字效果。

在步骤104之后,还包括:

步骤201、将基础字符集和待开发字体的字符集进行整合,构成整合字符集;对整合字符集进行修正,以构成修正后的整合字符集。

在本实施例中,具体的,最后,将基础字符集和待开发字体的字符集进行整合,构成整合字符集。然后,可以逐个字符进行人工检查,发现有问题的字符人工进行修正,最终将字形数据形成一个完整的字库,得到修正后的整合字符集。

通过本方案,可以改善原有做字方案中部件缩放变形的问题,只需要设计制作少量的汉字;同时,由于部件可以任意的进行缩放,且不会变形,这样原型部件可以只制作一次,而不需要同时制作多个,这样就减少了初始设计制作字符的数量,提高了工作效率,不影响成品字库的最终质量。

本实施例通过获取基础字符集,基础字符集中包括至少一个字符;根据基础字符集的各字符,构建部件库,其中,部件库中包括至少一个部件,每一个部件包括部件骨架线信息,部件骨架线信息包括至少一个笔画,每一个笔画包括第一笔触宽度和骨架线坐标点;根据待开发字体的风格,选择与待开发字体的风格相似的组字模板,其中,组字模板包括将要自动生成字符的字符组字信息,每一个字符组字信息包括组成部件信息,组成部件信息描述了部件及部件变换信息;根据部件库中的部件骨架线信息、以及组字模板中的组成部件信息,将组字模板中的各字符变换为待开发字体的字符集;将基础字符集和待开发字体的字符集进行整合,构成整合字符集;对整合字符集进行修正,以构成修正后的整合字符集。从而设计制作更少的汉字字符,投入更少的人力,提高了字符制作效率,减少了做字时间,降低了做字成本;同时,由于直接使用原始部件的骨架线和笔画笔触数据进行组字,既保证了字体笔形风格,同时也改善了现有自动拼字过程中笔画变形的问题,使得结果字库字形风格更加统一,提高了字库开发的工作效率,保证了成品字库的最终质量。

图8为本发明实施例三提供的基于骨架线的做字装置的结构示意图,如图8所示,本实施例提供的装置,包括:

获取模块31,用于获取基础字符集,基础字符集中包括至少一个字符;

构建模块32,用于根据基础字符集的各字符,构建部件库,其中,部件库中包括至少一个部件,每一个部件包括部件骨架线信息,部件骨架线信息包括至少一个笔画,每一个笔画包括第一笔触宽度和骨架线坐标点;

选择模块33,用于根据待开发字体的风格,选择与待开发字体的风格相似的组字模板,其中,组字模板包括将要自动生成字符的字符组字信息,每一个字符组字信息包括组成部件信息,组成部件信息描述了部件及部件变换信息;

变换模块34,用于根据部件库中的部件骨架线信息、以及组字模板中的组成部件信息,将组字模板中的各字符变换为待开发字体的字符集。

本实施例的基于骨架线的做字装置可执行本发明实施例一提供的基于骨架线的做字方法,其实现原理相类似,此处不再赘述。

本实施例通过获取基础字符集,基础字符集中包括至少一个字符;根据基础字符集的各字符,构建部件库,其中,部件库中包括至少一个部件,每一个部件包括部件骨架线信息,部件骨架线信息包括至少一个笔画,每一个笔画包括第一笔触宽度和骨架线坐标点;根据待开发字体的风格,选择与待开发字体的风格相似的组字模板,其中,组字模板包括将要自动生成字符的字符组字信息,每一个字符组字信息包括组成部件信息,组成部件信息描述了部件及部件变换信息;根据部件库中的部件骨架线信息、以及组字模板中的组成部件信息,将组字模板中的各字符变换为待开发字体的字符集。从而设计制作更少的汉字字符,投入更少的人力,提高了字符制作效率,减少了做字时间,降低了做字成本;同时,由于直接使用原始部件的骨架线和笔画笔触数据进行组字,既保证了字体笔形风格,同时也改善了现有自动拼字过程中笔画变形的问题,使得结果字库字形风格更加统一,提高了字库开发的工作效率,保证了成品字库的最终质量。

图9为本发明实施例四提供的基于骨架线的做字装置的结构示意图,在实施例三的基础上,如图9所示,本实施例提供的装置,构建模块32,具体用于:

从基础字符集中抽取组成字符的各部件,以构成部件库。

组成部件信息包括:部件变换信息;

变换模块34,具体用于:

从部件库中获取当前字符的各部件的部件骨架线信息,根据组字模板中的变换信息针对每一个部件进行处理,将部件库中的各部件变换到待开发字体的目标部件上,以将组字模板中的各字符变换为待开发字体的字符集。

具体来说,变换模块34,具体用于:

从部件库中获取当前字符的各部件的部件骨架线信息,根据组字模板中的变换信息针对每一个部件进行处理,将部件库中的部件的各笔画的骨架线坐标点p0(x0,y0),变换至待开发字体的目标部件的各笔画的轮廓点p(x,y)上,其中,(x,y)=(x0,y0)*mat2+(xoffset,yoffset),mat2是一个二维变换矩阵描述部件的缩放、旋转等参数信息,xoffset表示x方向的偏移,yoffset表示y方向的偏移;

将部件库中的部件的各笔画的第一笔触宽度,变换为待开发字体的目标部件的各笔画的第二笔触宽度,其中,第二笔触宽度w为第一笔触宽度,x为部件横向缩放比例,y为部件纵向缩放比例。

还包括:

整合模块41,用于在变换模块34根据部件库中的部件骨架线信息、以及组字模板中的组成部件信息,将组字模板中的的各字符变换为待开发字体的字符集之后,将基础字符集和待开发字体的字符集进行整合,构成整合字符集;对整合字符集进行修正,以构成修正后的整合字符集。

本实施例的基于骨架线的做字装置可执行本发明实施例二提供的基于骨架线的做字方法,其实现原理相类似,此处不再赘述。

本实施例通过获取基础字符集,基础字符集中包括至少一个字符;根据基础字符集的各字符,构建部件库,其中,部件库中包括至少一个部件,每一个部件包括部件骨架线信息,部件骨架线信息包括至少一个笔画,每一个笔画包括第一笔触宽度和骨架线坐标点;根据待开发字体的风格,选择与待开发字体的风格相似的组字模板,其中,组字模板包括将要自动生成字符的字符组字信息,每一个字符组字信息包括组成部件信息,组成部件信息描述了部件及部件变换信息;根据部件库中的部件骨架线信息、以及组字模板中的组成部件信息,将组字模板中的的各字符变换为待开发字体的字符集;将基础字符集和待开发字体的字符集进行整合,构成整合字符集;对整合字符集进行修正,以构成修正后的整合字符集。从而设计制作更少的汉字字符,投入更少的人力,提高了字符制作效率,减少了做字时间,降低了做字成本;同时,由于直接使用原始部件的骨架线和笔画笔触数据进行组字,既保证了字体笔形风格,同时也改善了现有自动拼字过程中笔画变形的问题,使得结果字库字形风格更加统一,提高了字库开发的工作效率,保证了成品字库的最终质量。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1