首页 / 专利库 / 专利权 / 专利合作条约 / 第I章 / 国际检索单位 / 国际检索 / 现有技术 / 一种变换字体风格的方法及系统

一种变换字体格的方法及系统

阅读:395发布:2021-06-15

专利汇可以提供一种变换字体格的方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种变换字体 风 格的方法及系统,属于字符信息处理技术领域。在 现有技术 中,当需要现有字库中没有的字体风格时,要么开发一种新字体,要么对最接近的现有字库中的字体进行人工 修改 。如果开发新字体,则存在开发成本高,开发周期长,对系统存储 硬件 要求较高等不足之处;如果通过人工方式修改,则存在效率低、效果不理想等缺点。本发明所述的方法及系统,通过将对字形中的笔画特征进行动态变换的变换代码嵌入到现有轮廓字库的代码中的方式,实现动态变换字体风格的目的。本发明与开发新字体相比,降低了开发成本,缩短了开发周期,同时降低了字库对存储硬件的要求;与人工修改方式相比,提高了字体风格变换的效率,变换后的字体效果好。,下面是一种变换字体格的方法及系统专利的具体信息内容。

1.一种变换字体格的方法,其特征在于:该方法将对字形中的笔画特征进行动态变换的变换代码嵌入到现有轮廓字库的代码中,将对现有轮廓字库中所有的字形数据产生影响的变换代码嵌入到全局代码中,将对字库中的单字产生影响的变换代码嵌入到该字形数据的前面;读取字形数据后,字体引擎调用该变换代码,在字形渲染之前对字形中的笔画特征进行动态变换。
2.如权利要求1所述的一种变换字体风格的方法,其特征在于,所述的对字形中的笔画特征进行动态变换的过程包括以下步骤:
(1)遍历字形中的笔画特征,识别出需要变换的笔画特征;
(2)提取步骤(1)中识别出的笔画特征;
(3)动态调整步骤(2)中提取的笔画特征。
3.如权利要求2所述的一种变换字体风格的方法,其特征在于:对字形中的“横”类或“竖”类笔画特征进行动态变换,当字形尺寸不同时,保持“横”类或“竖”类笔画视觉效果上的恒定。
4.如权利要求3所述的一种变换字体风格的方法,其特征在于:在遍历字形中的笔画特征之前还包括设定字形中“横”类或“竖”类笔画缩减比例的步骤;当字形尺寸不大于96磅时,缩减比例为42/64;当字形尺寸大于96磅、不大于216磅时,缩减比例为48/64;当字形尺寸大于216磅,缩减比例为52/64;并将根据上述缩减比例编写的缩减比例代码嵌入到现有轮廓字库的全局代码中。
5.如权利要求3所述的一种变换字体风格的方法,其特征在于:步骤(1)中识别字形中的“横”类笔画特征时,将字形中是否包含平类线段作为识别此类笔画的依据;识别字形中的“竖”类笔画时,将字形中是否包含竖直类线段作为识别此类笔画的依据。
6.如权利要求5所述的一种变换字体风格的方法,其特征在于:步骤(2)中提取“横”类或“竖”类笔画特征的过程包括以下步骤:
①识别出字形中所有“横”类或“竖”类笔画上的点;
②判断每个点与其相邻的两点中是否存在线外控制点,如果当前点不存在相邻的线外控制点则将该点记录到不存在相邻的线外控制点的数组A中;
③判断线外控制点与当前点的连线是否形成水平线或竖直线,如果不能形成水平线或竖直线,则将该点记录到存在相邻的线外控制点的数组B中,否则将该点记录到不存在相邻的线外控制点的数组A中。
7.如权利要求6所述的一种变换字体风格的方法,其特征在于:在动态调整“横”类或“竖”类笔画特征之前对被提取的点进行分类,分类的过程为:首先判断数组B中任意两点横坐标或纵坐标的差值是否大于预先设定的阈值,如果不大于该阈值,则认为两点是同一对点,在调整时一起处理;数组B经过上述处理后,将剩余的点和数组A中的点归为一类。
8.如权利要求7所述的一种变换字体风格的方法,其特征在于:所述的阈值为5。
9.如权利要求7或8所述的一种变换字体风格的方法,其特征在于:步骤(3)中所述的动态调整笔画特征的过程包括以下步骤:
①调整双边连接曲线类点,即数组B中的成对点;
首先设定待调整点的移动方向和测量方向;所述的移动方向为同一对点中两点确定的方向,“横”类笔画中上边点的移动方向为从上边点指向下边点,下边点的移动方向为从下边点指向上边点;“竖”类笔画中左边点的移动方向为从左边点指向右边点,右边点的移动方向为从右边点指向左边点;所述的测量方向是指移动量的计算方向,“横”类笔画的测量方向为竖直方向,“竖”类笔画的测量方向为水平方向;然后沿着测量方向确定待调整点的移动量,最后按照移动方向和移动量移动待调整点;
②调整双边非连接曲线类点,即数组A中的点;
首先将待调整点的移动方向和测量方向均设为竖直方向或水平方向,“横”类笔画中上边点的移动方向为竖直向下,下边点的移动方向为竖直向上;“竖”类笔画中左边点的移动方向为水平向右,右边点的移动方向为水平向左;然后根据移动方向和步骤①中的移动量移动待调整点;
③对字形中没有被移动的点进行竖直方向或水平方向上的位置关系保持操作;如果对“横”类笔画上的点进行了移动,则对没有被移动的点进行竖直方向上的位置关系保持操作,如果对“竖”类笔画上的点进行了移动,则对没有被移动的点进行水平方向上的位置关系保持操作。
10.如权利要求9所述的一种变换字体风格的方法,其特征在于:步骤③中对字形中没有被移动的点进行竖直方向上的位置关系保持操作的过程为:首先遍历字形中的所有点,判断点的位置是否发生了变动,如果点的位置没有发生变动,则在水平方向上找到与该点最近的变动点,提取与该点最近的变动点在竖直方向上的变动量,然后将其施加到该点的竖直方向上;
对字形中没有被移动的点进行水平方向上的位置关系保持操作的过程为:首先遍历字形中的所有点,判断点的位置是否发生了变动,如果点的位置没有发生变动,则在竖直方向上找到与该点最近的变动点,提取与该点最近的变动点在水平方向上的变动量,然后将其施加到该点的水平方向上。
11.如权利要求2所述的一种变换字体风格的方法,其特征在于:对字形中“点”类笔画特征进行动态变换,当字形尺寸不同时,保持“点”类笔画视觉效果上的恒定;变换的过程包括以下步骤:
①设定“点”类笔画的缩减比例;
当字形尺寸不大于96磅时,缩减比例为42/64;当字形尺寸大于96磅、不大于216磅时,缩减比例为48/64;当字形尺寸大于216磅,缩减比例为52/64,并将根据上述缩减比例编写的缩减比例代码嵌入到现有轮廓字库的全局代码中;
②调整“点”类笔画的开口大小;
设定开口点的移动方向和测量方向为开口点确定的方向,根据步骤①中设定的缩减比例计算开口点的移动距离,移动开口点。
③调整“点”类笔画上点的位置关系;
首先找到与开口点在竖直方向上相对的位于底部的点,然后在水平方向和竖直方向上调整“点”类笔画上开口点与底部点之间的点的位置,保证开口点移动前后,开口点与中间点的横坐标之差和纵坐标之差与中间点与底部点横坐标之差和纵坐标之差的比值不变,其中开口点与底部点位于同侧。
12.一种变换字体风格的系统,包括将对字形中的笔画特征进行动态变换的变换代码嵌入到现有轮廓字库代码中的嵌入装置,以及读取字形数据后,字体引擎调用该变换代码,在字形渲染之前对字形中的笔画特征进行动态变换的变换装置;
所述嵌入装置将对现有轮廓字库中所有的字形数据产生影响的变换代码嵌入到全局代码中,将对字库中的单字产生影响的变换代码嵌入到该字形数据的前面。
13.如权利要求12所述的一种变换字体风格的系统,其特征在于:所述的变换装置包括用于识别现有轮廓字库字形中需要变换的笔画特征的识别模、用于提取识别模块识别出的笔画特征的提取模块、以及用于调整提取模块提取的笔画特征的调整模块。

说明书全文

技术领域

发明属于字符信息处理技术领域,具体涉及一种变换字体格的方法及系统

背景技术

字库是现代操作系统的重要组成部分之一,辅助计算机完成字体的显示,打印等操作。现有的字库是按照字体的风格进行组织的,不同风格的字体需要存储在不同的字库中,甚至同一风格不同粗细的字体也需要存储在不同的字库中。例如Windows中使用的方正姚体,微软雅黑等,其中微软雅黑又有不同的粗细之分,分别存储在不同的文件中。
对于需要采用不同风格字体的场合,例如一些时尚杂志,为了吸引人们的注意,常常会采用多种不同风格的字体,如果现有字库中没有合适的字体,那么或者开发新的字体,或者找到一种现有的风格相似的字体,再利用图形软件等工具对字符中的某类笔画进行人工修改。如果开发新的字体,则存在开发成本高,开发周期长,对系统存储硬件要求较高等不足之处;如果通过人工的方式修改,则存在效率低、效果不理想等缺点。

发明内容

针对现有技术中存在的缺陷,本发明的目的是提供一种变换字体风格的方法及系统,该方法及系统能够在现有轮廓字库的基础上变换字体的风格,无需开发新的字体,也无需人工进行修改。
为了实现上述目的,本发明采用的技术方案是,一种变换字体风格的方法,该方法将对字形中的笔画特征进行动态变换的变换代码嵌入到现有轮廓字库的代码中,将对现有轮廓字库中所有的字形数据产生影响的变换代码嵌入到全局代码中,将对字库中的单字产生影响的变换代码嵌入到该字形数据的前面;读取字形数据后,字体引擎调用该变换代码,在字形渲染之前对字形中的笔画特征进行动态变换。
如上所述的一种变换字体风格的方法,其中,对字形中的笔画特征进行动态变换的过程包括以下步骤:
(1)遍历字形中的笔画特征,识别出需要变换的笔画特征;
(2)提取步骤(1)中识别出的笔画特征;
(3)动态调整步骤(2)中提取的笔画特征。
如上所述的一种变换字体风格的方法,其中,对字形中的“横”类或“竖”类笔画特征进行动态变换,当字形尺寸不同时,保持“横”类或“竖”类笔画视觉效果上的恒定。
如上所述的一种变换字体风格的方法,其中,在遍历字形中的笔画特征之前还包括设定字形中“横”类或“竖”类笔画缩减比例的步骤;当字形尺寸不大于96磅时,缩减比例为42/64;当字形尺寸大于96磅、不大于216磅时,缩减比例为48/64;当字形尺寸大于216磅,缩减比例为52/64;并将根据上述缩减比例编写的缩减比例代码嵌入到现有轮廓字库的全局代码中。
如上所述的一种变换字体风格的方法,步骤(1)中识别字形中的“横”类笔画特征时,将字形中是否包含平类线段作为识别此类笔画的依据;识别字形中的“竖”类笔画时,将字形中是否包含竖直类线段作为识别此类笔画的依据。
如上所述的一种变换字体风格的方法,步骤(2)中提取“横”类或“竖”类笔画特征的过程包括以下步骤:
①识别出字形中所有“横”类或“竖”类笔画上的点;
②判断每个点与其相邻的两点中是否存在线外控制点,如果当前点不存在相邻的线外控制点则将该点记录到不存在相邻的线外控制点的数组A中;
③判断线外控制点与当前点的连线是否形成水平线或竖直线,如果不能形成水平线或竖直线,则将该点记录到存在相邻的线外控制点的数组B中,否则将该点记录到不存在相邻的线外控制点的数组A中。
如上所述的一种变换字体风格的方法,其中,在动态调整“横”类或“竖”类笔画特征之前对被提取的点进行分类,分类的过程为:首先判断数组B中任意两点横坐标或纵坐标的差值是否大于预先设定的阈值,如果不大于该阈值,则认为两点是同一对点,在调整时一起处理;数组B经过上述处理后,将剩余的点和数组A中的点归为一类。所述的阈值为5。
如上所述的一种变换字体风格的方法,步骤(3)中所述的动态调整笔画特征的过程包括以下步骤:
①调整双边连接曲线类点,即数组B中的成对点:
首先设定待调整点的移动方向和测量方向;所述的移动方向为同一对点中两点确定的方向,“横”类笔画中上边点的移动方向为从上边点指向下边点,下边点的移动方向为从下边点指向上边点;“竖”类笔画中左边点的移动方向为从左边点指向右边点,右边点的移动方向为从右边点指向左边点;所述的测量方向是指移动量的计算方向,“横”类笔画的测量方向为竖直方向,“竖”类笔画的测量方向为水平方向;然后沿着测量方向确定待调整点的移动量,最后按照移动方向和移动量移动待调整点;
②调整双边非连接曲线类点,即数组A中的点:
首先将待调整点的移动方向和测量方向均设为竖直方向或水平方向,“横”类笔画中上边点的移动方向为竖直向下,下边点的移动方向为竖直向上;“竖”类笔画中左边点的移动方向为水平向右,右边点的移动方向为水平向左;然后根据移动方向和步骤①中的移动量移动待调整点;
③对字形中没有被移动的点进行竖直方向或水平方向上的位置关系保持操作;如果对“横”类笔画上的点进行了移动,则对没有被移动的点进行竖直方向上的位置关系保持操作,如果对“竖”类笔画上的点进行了移动,则对没有被移动的点进行水平方向上的位置关系保持操作。
对字形中没有被移动的点进行竖直方向上的位置关系保持操作的过程为:首先遍历字形中的所有点,判断点的位置是否发生了变动,如果点的位置没有发生变动,则在水平方向上找到与该点最近的变动点,提取与该点最近的变动点在竖直方向上的变动量,然后将其施加到该点的竖直方向上。
对字形中没有被移动的点进行水平方向上的位置关系保持操作的过程为:首先遍历字形中的所有点,判断点的位置是否发生了变动,如果点的位置没有发生变动,则在竖直方向上找到与该点最近的变动点,提取与该点最近的变动点在水平方向上的变动量,然后将其施加到该点的水平方向上。
如上所述的一种变换字体风格的方法,其中,对字形中“点”类笔画特征进行动态变换,当字形尺寸不同时,保持“点”类笔画视觉效果上的恒定;变换的过程包括以下步骤:
①设定“点”类笔画的缩减比例;
当字形尺寸不大于96磅时,缩减比例为42/64;当字形尺寸大于96磅、不大于216磅时,缩减比例为48/64;当字形尺寸大于216磅,缩减比例为52/64;
②调整“点”类笔画的开口大小;
设定开口点的移动方向和测量方向为开口点确定的方向,根据步骤①中设定的缩减比例计算开口点的移动距离,移动开口点。
③调整“点”类笔画上点的位置关系;
首先找到与开口点在竖直方向上相对的位于底部的点,然后在水平方向和竖直方向上调整“点”类笔画上开口点与底部点之间的点的位置,保证开口点移动前后,开口点与中间点的横坐标之差和纵坐标之差与中间点与底部点横坐标之差和纵坐标之差的比值不变,其中开口点与底部点位于同侧。
一种变换字体风格的系统,包括将对字形中的笔画特征进行动态变换的变换代码嵌入到现有轮廓字库代码中的嵌入装置,以及读取字形数据后,字体引擎调用该变换代码,在字形渲染之前对字形中的笔画特征进行动态变换的变换装置;所述嵌入装置将对现有轮廓字库中所有的字形数据产生影响的变换代码嵌入到全局代码中,将对字库中的单字产生影响的变换代码嵌入到该字形数据的前面。
如上所述的一种变换字体风格的系统,其中,所述的变换装置包括用于识别现有轮廓字库字形中需要变换的笔画特征的识别模、用于提取识别模块识别出的笔画特征的提取模块、以及用于调整提取模块提取的笔画特征的调整模块。
本发明所述的方法及系统通过在现有一套字库的基础上进行动态变换的方式,实现了字体风格可切换的目标。与开发新字体相比降低了字体开发的成本,缩短了字体开发的周期,同时降低了字库对存储硬件的要求;与人工修改方式相比,提高了字体风格变换的效率,变换后的字体效果好。
附图说明
图1是本发明对字形的笔画特征进行动态变换的流程图
图2是具体实施方式中“国”字的字形轮廓图;
图3是具体实施方式中“女”字的字形轮廓图;
图4是具体实施方式中双边连接曲线类点示意图;
图5是具体实施方式中双边非连接曲线类点示意图;
图6是具体实施方式中对双边连接曲线类点进行调整的流程图;
图7是具体实施方式中变换前后的字符效果对照图;
图8是具体实施方式中“点”笔画的轮廓图。

具体实施方式

下面结合实施例和附图对本发明进行详细地描述。
本发明是在现有轮廓字库基础上,将对字形的笔画特征进行动态变换的变换代码嵌入到现有轮廓字库的代码中,在读取字形数据后,字体引擎会调用该变换代码,在字形渲染之前对字形的笔画特征进行动态变换,从而实现变换字体风格的目的。
嵌入变换代码时,将对现有轮廓字库中所有的字形数据产生影响的变换代码嵌入到全局代码中,将对字库中的单字产生影响的变换代码嵌入到该字形数据的前面。
本发明所述的变换字体风格的系统,包括将对字形中的笔画特征进行动态变换的变换代码嵌入到现有轮廓字库代码中的嵌入装置,以及读取字形数据后,字体引擎调用该变换代码,在字形渲染之前对字形中的笔画特征进行动态变换的变换装置。
其中,变换装置包括用于识别现有轮廓字库字形中需要变换的笔画特征的识别模块、用于提取识别模块识别出的笔画特征的提取模块、以及用于调整提取模块提取的笔画特征的调整模块。
本发明所述的变换字体风格的方法,对字形中的笔画特征进行动态变换的过程包括以下步骤,如图1所示。
(1)识别模块遍历字形中的笔画特征,识别出需要变换的笔画特征。其中,笔画特征的识别方法主要包括以下步骤:①设定识别笔画的种类(即笔画特征);②进行识别前的噪声处理;③笔画方向码合并处理及笔画识别。(笔画特征的详细识别过程可参见<<精通Visual C++数字图像模式识别技术及工程实践>>,ISBN:9787115180520)
(2)提取模块提取步骤(1)中识别出的笔画特征。
(3)调整模块动态调整步骤(2)中提取的笔画特征。
实施例1
本实施例中,拟将字体风格特征变换成:当字符大小不同时,“横”类笔画始终保持视觉效果上的恒定。例如,宋体中五号的“国”字与二号的“国”字,其中横类笔画保持视觉效果上的恒定,也就是说,通过调整二号的“国”字中横类笔画的宽度来实现与五号的“国”字中横类笔画在视觉效果上的恒定。
参照图1,对字形中“横”类笔画特征进行动态变换的过程包括以下步骤。
(1)设置字形中“横”类笔画的缩减比例。
试验证明:设定如下的缩减比例,可以保持“横”类笔画视觉效果上的恒定。当字符尺寸不大于96磅时,缩减比例为42/64,即将“横”类笔画宽度缩减成原来的2×(1-42/64);当字符尺寸大于96磅,不大于216磅时,缩减比例为48/64;当字符尺寸大于216磅,缩减比例为52/64。
确定了上述的缩减比例后,即可以编写相应的缩减比例代码,并将其嵌入到字库的全局代码中。例如,以Windows操作系统采用的TrueType字库为例,应将此部分代码嵌入到prep表中,并且采用标准的TrueType控制指令的编写规范进行编写。在确定了字符大小后,字体引擎就会执行此段代码,保证在解释字形数据前已经设置了正确的缩减比例。
如果不在该步骤中设置缩减比例,可以在调整笔画特征时指定点的移动距离。缩减比例的具体值也可以根据用户的需要而改变。
(2)根据字体的设计风格,遍历字形中的笔画特征,采用相应的识别方法识别出“横”类笔画特征,然后提取“横”类笔画特征。
本实施例中,待提取的笔画特征为“横”类笔画特征。首先根据字体的设计风格确定“横”类笔画的识别方法。以方正开发的一款宋体为例(符合TrueType标准规范),将字形中是否包含水平类线段作为识别此类笔画的依据。然后遍历字形中所有的笔画特征,根据“横”类笔画的识别方法识别出“横”类笔画特征。最后根据TrueType标准规范中对字形部分的存储规范,提取“横”类笔画特征,其过程包括以下步骤:
①识别出字形中所有“横”类笔画上点;
②判断每个点与其相邻的两点中是否存在线外控制点,如果当前点不存在相邻的线外控制点则将该点记录到不存在相邻的线外控制点的数组A中;
③判断线外控制点与当前点的连线是否形成水平线或竖直线,如果不能形成水平线或竖直线,则将该点记录到存在相邻的线外控制点的数组B中,否则将该点记录到不存在相邻的线外控制点的数组A中。
例如,图2中“国”字“横”笔画上的点为点200至点228。其中,最上边的“横”中,与点201相邻的两点200、202均不是线外控制点,因此点201不存在相邻的线外控制点,将其记录到不存在相邻的线外控制点的数组A中;同理,点202、203和204均不存在相邻的线外控制点,因此也将这些点记录到不存在相邻的线外控制点的数组A中。图3中“女”字“横”笔画上的点为点301至点304、点306至点311。其中,与点303相邻的点313为线外控制点,且点303与点313的连线不能形成水平线或竖直线,因此将该点记录到存在相邻的线外控制点的数组B中;同理,点309也存在相邻的线外控制点312,因此将其记录到存在相邻的线外控制点的数组B中。此外,点306虽然存在相邻点305,并且点305为线外控制点,但二者之间的连线形成了水平线,因此并不将点306记录到数组B中,而是记录到数组A中。
在C语言中可以采用如下数据结构记录“横”类笔画中的点。
typedef struct_PointElement
{
POINT pt;                       //记录当前点的坐标
BOOL bIncOffCurveNeighborPoints;//相邻点中是否存在线外控制点
}PointElement,*LPPointElement;
提取完成后,便得到字形中存在的“横”类笔画上的所有点。以图3中所示的“女”字形为例,得到的结果如下:点303和点309存在相邻的线外控制点;点301、302、304、306、307、308、310和311不存在相邻的线外控制点。在C语言中可以采用两个上述PointElement为元素的数组来分别记录识别结果。
在提取的笔画特征基础上,需要对被提取的点进行分类。分类的过程为:首先判断存在相邻的线外控制点的数组B中,任意两点横坐标的差值是否大于预先设定的阈值,如果不大于阈值,则认为两点是同一对点,在调整时一起处理。本实施例中,阈值为5。数组B经过上述处理后,将剩下的点和不存在相邻的线外控制点的点归为一类,即将数组B剩下的点与数组A中的点合并。
分类后的数组B中的成对点为双边连接曲线类点,即“横”的一端的两个端点连接两条曲线类点,如图4中的点41和点42。数组A中的点为双边非连接曲线类点,包括单边连接曲线和双边连接直线两小类,由于二者采用相同的调整方法也可以满足视觉一致性的要求,所以在调整时不做区分。
(3)动态调整步骤(2)中提取的“横”类笔画特征。
首先,调整双边连接曲线类点,即数组B中的成对点,调整的过程包括以下步骤,如图6所示。
①设定点的移动方向和测量方向。所述的移动方向是指点沿着何种方向移动,所述的测量方向是指移动量的大小沿着何种方向测量。对于双边连接曲线类点来说,移动方向为同一对点中两点确定的方向,“横”类笔画中上边点的移动方向为从上边点指向下边点,下边点的移动方向为从下边点指向上边点。例如,图4中待调整的双边连接曲线类点为点41和点42。设定点41的移动方向为从点41指向点42,即沿着从点41到点42的方向移动;点42的移动方向为从点42指向点41,即沿着从点42到点41的方向移动。然后设定测量方向为竖直方向,即移动时移动量的大小沿着竖直方向测量。图4中,假设点41沿着点41到点42的方向移动10个单位,则其移动量应该为点41到点42上的10个单位在竖直方向上的投影大小。设点41和点42确定的直线与竖直方向的夹为angle度(取小于180度的弧度数),则移动量的大小为10*|cos(angle)|,其中两竖线为取绝对值操作符。
本实施例中,由于设定了缩减比例(假设当前字符尺寸为120磅,则缩减比例为48/64),所以首先沿着测量方向获取点41和点42之间的距离,记为dis41to42,由此便可确定单边移动距离为0.5*dis41to42*48/64,记为sg1Dis。如果没有预先设定缩放比例,那么在该步骤中还需要设定“横”类笔画上点的移动距离,即移动量。
②按照上述设定的移动方向和测量方向移动点,移动时两点均匀的沿着移动方向移动指定的移动量,单边移动距离指的便是该移动量。图4中,点41沿着从点41到点42的方向移动,移动量为sg1Dis;点42沿着从点42到点41的方向移动,移动量也为sg1Dis。至此完成了双边连接曲线类一对点的调整过程。如果还有其他双边连接曲线类点需要调整,则重复上述步骤即可。
然后,调整双边非连接曲线类点,即数组A中的点。调整双边非连接曲线类点与调整双边连接曲线类点的流程类似,区别之处在于移动方向不同,此类点的移动方向和测量方法均为竖直方向,“横”类笔画中上边点的移动方向为竖直向下,下边点的移动方向为竖直向上。如图5所示,其中点51和点52属于此类情况,设置移动方向时,点51的移动方向为竖直向下,点52的移动方向为竖直向上,而非两点连线确定的方向,其他的操作同上。
最后,对字形中没有被移动的点进行竖直方向的位置关系保持操作,该操作的目的是为了保持字形中点与点之间的相对位置关系。例如,图3中的字形经过调整之后,点301、302、303、304、306、307、308、309、310、311仍然保持调整前的相对位置关系,而与其相邻的点可能改变了相对位置关系。以点305为例,调整前点306和点305位于同一水平线上,调整后,点306竖直向上移动了一定的距离,如果点305的位置仍保持不变,则两点之间的相对位置关系就发生了改变。
为此,必须遍历字形中的所有点,判断点的位置是否发生变动,如果点的位置没有发生变动,则在水平方向上找到与该点最近的变动点,提取变动点在竖直方向上的变动量,然后将变动点在竖直方向上的变动量施加到该点的竖直方向上。以点305为例,其在水平方向上最近的变动点为306,提取306在竖直方向上的变动量,然后将其施加到点305的竖直方向上,从而保持调整前后点305和点306始终位于同一水平线上。
确定了上述对“横”类笔画的变换方法后,便可以根据该方法编写变换代码,并将其插入到现有轮廓字库中字形数据的前面。如果将现有字库中所有字的“横”类笔画进行上述变换,那么可以将变换代码嵌入到所有字形数据的前面。如果对单字进行变换,则将变换代码嵌入到该单字字形数据的前面即可。
本实施例中,字体风格变换前后的效果对比,如图7所示。
实施例2
本实施例中,拟将字体风格特征变换成:当字符大小不同时,“竖”类笔画始终保持视觉效果上的恒定。
对“竖”类笔画的变换与对“横”类笔画的变换方法相似,因为将“竖”类笔画旋转90度后便可以看成是“横”类笔画。因此,只需在实施例1的基础上,进行适当的修改即可。例如,对被提取的点进行分类时,将判断数组B中任意两点横坐标的差值是否大于预先设定的阈值修改为判断数组B中任意两点纵坐标的差值是否大于预先设定的阈值;在移动点时,将点沿着竖直方向移动或沿着竖直方向测量移动量修改为沿着水平方向上移动或测量。
实施例3
本实施例中,拟将字体风格特征变换成:当字符大小不同时,“点”类笔画始终保持视觉效果上的恒定。以一款宋体中的“点”类笔画为例,该字体“点”类笔画的特征为在上端存在两点连接的直线,将这两点称为开口点,如图8所示,其中点801和点802为开口点。
首先,设定“点”类笔画的缩减比例,其缩减比例与实施例1相同。
然后,调整“点”类笔画的开口大小。以图8为例,设定开口点801和点802的移动方向和测量方向均为点801到点802确定的方向。根据设定好的缩减比例,计算出点801和点802移动的距离,移动点801和点802。
最后,调整“点”类笔画上开口点与底部点之间的点的位置,以保证“点”类笔画上所有点的相对位置关系不变。以图8为例,因为点801的位置发生了变化,所以首先找到竖直方向上相对于点801的位于底部的点807,底部点的位置保持不变,且该底部点与开口点位于同侧,如图8中的点801和点807以及点802和点806。然后在水平方向和竖直方向上对介于801和807之间的点808、809和810进行调整,对介于开口点802和底部点806之间的点803、804和805也进行同样地调整。以在水平方向上调整点801和点807之间的点809为例,在点801移动前该点位于上述两点的中点处,假设点801的横坐标X801减去点809的横坐标X809与点809的横坐标X809减去点807的横坐标X807的比值为T,即(X801-X809)/(X809-X807)=T。在点801移动后,就需要对点809的位置进行调整,以保证比值T不变,从而保证曲线在调整前后的形状一致。在竖直方向上的调整方法与在水平方向上的调整方法相似,即保证点移动前后比值(Y801-Y809)/(Y809-Y807)不变,其中,Y表示点的纵坐标。
需要说明的是:本发明的核心是通过将对字形中的笔画特征进行动态变换的代码嵌入到现有轮廓字库中的方式,实现变换字体风格的目的。其中,对字形中的笔画特征进行动态变换的方法及系统并不限于具体实施方式中所述的实施例,本领域技术人员完全可以根据用户对字体风格的需求来编写对字形中某一类或某几类笔画特征进行变换的代码,然后嵌入到现有轮廓字库中,达到变换字体风格的目的。因此,只要采用将对字形中某一类或某几类笔画特征进行变换的代码嵌入到现有轮廓字库中的方法来改变字体的风格,便属于本发明的技术创新范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈