发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种文字变形特效处理方法及装置,其降低了文字变形特效时的人工成本,并使装置增加了可对文字进行任意变形的新功能,为用户提供了方便。
本发明解决技术问题所采用的技术方案如下:
一种文字变形特效处理方法,其中,包括:
A、设置由一个初始规则矩形和多个控制点组成的文字变形设计器,控制点用于控制该文字变形设计器的矩形进行线性变形或二次型变形;
B、接收用户输入的需要变形的文字,将该需要变形的文字转换为矢量图形,输入到文字变形设计器;
C、接收用户拖动文字变形设计器的控制点的操作指令,根据文字变形设计器动态建立的数学模型将文字矢量图形进行线性变形和/或二次型变形;
D、文字变形设计器输出经过变形后的特效文字图形。
所述的文字变形特效处理方法,其中,所述步骤A还包括:
A1、当控制该文字变形设计器的矩形进行线性变形时,指定初始矩形的控制点为四个角顶点;
A2、当控制该文字变形设计器的矩形进行二次型变形时,指定初始矩形的控制点为矩形四条边上的中点。
所述的文字变形特效处理方法,其中,所述的步骤C还包括:
将用户的操作指令转化为文字变形参数,该文字变形参数包括初始控制点参数与矢量运动参数。
所述的文字变形特效处理方法,其中,所述步骤C还包括:
C1、文字变形设计器根据用户选择的变形类型和用户拉伸后所确定的特效形状,抽象出变换后各个控制点的坐标,输出一个表示变形类型的参数E以及一个2行2列的矩阵,记为:
其中E代表文字变形的类型,取值为1或者2,1代表变形为线性变形的,2代表变形为二次型变形;矩阵M的四个元素Point1,Point2,Point3,Point4分别对应4个控制点的位置:对于线性变形分别依次对应矩形四个角顶点的相对坐标,对于二次型变形分别对应矩形中四条边上的中点的相对坐标。
所述的文字变形特效处理方法,其中,所述的步骤D还包括:
对生成的特效文字图形进行分割,根据输入文字的个数生成独立的子字块。
所述的文字变形特效处理方法,其中,所述步骤D中的对生成的特效文字图形进行分割,根据输入文字的个数生成独立的子字块具体包括:
D1、根据字与字之间的空白间隙在图像行垂直投影上形成的空白间隔,以及汉字间的间隔大于汉字内间隔这一规则,对生成的特效文字图形进行汉字的分割,根据输入文字的个数分割生成独立的子字块。
一种文字变形特效处理装置,其中,包括:
文字变形设计器创建模块,用于设置由一个初始规则矩形和多个控制点组成的文字变形设计器,控制点用于控制该文字变形设计器的矩形进行线性变形或二次型变形;
接收与输入模块,用于接收用户输入的需要变形的文字,将该需要变形的文字转换为矢量图形,输入到文字变形设计器;
模型建立与特效变形模块,用于接收用户拖动文字变形设计器的控制点的操作指令,根据文字变形设计器动态建立的数学模型将文字矢量图形进行线性变形和/或二次型变形;
输出模块,用于通过文字变形设计器输出经过变形后的特效文字图形。
所述文字变形特效处理装置,其中,所述文字变形设计器创建模块包括:第一设置单元和第二设置单元;
第一设置单元,用于当控制该文字变形设计器的矩形进行线性变形时,指定初始矩形的控制点为四个角顶点;
第二设置单元,用于当控制该文字变形设计器的矩形进行二次型变形时,指定初始矩形的控制点为矩形四条边上的中点;
所述文字变形特效处理装置,其中,所述模型建立与特效变形模块包括:
转化单元,用于将用户的操作指令转化为文字变形参数,该文字变形参数包括初始控制点参数与矢量运动参数。
所述文字变形特效处理装置,其中,所述输出模块包括:
分割单元,用于根据字与字之间的空白间隙在图像行垂直投影上形成的空白间隔,以及汉字间的间隔大于汉字内间隔这一规则,对生成的特效文字图形进行汉字的分割,根据输入文字的个数分割生成独立的子字块。
本发明所提供的文字变形特效处理方法及装置,由于采用了设置由一个初始规则矩形和多个控制点组成的文字变形设计器,控制点用于控制该文字变形设计器的矩形进行线性变形或二次型变形;接收用户输入的需要变形的文字,将该需要变形的文字转换为矢量图形,输入到文字变形设计器;接收用户拖动文字变形设计器的控制点的操作指令,根据文字变形设计器动态建立的数学模型将文字矢量图形进行线性变形和/或二次型变形;文字变形设计器输出经过变形后的特效文字图形,本发明实施例降低了完成一种文字特效所要花费的人工成本,同时降低了研发成本,可以通过简单的调节矩阵参数即可实现不同的文字形状特效,而不再需要针对特定的特效进行研发。并使装置增加了可对文字进行任意变形的新功能,让用户可以轻松的制作出自己喜欢的文字变形特效,为用户提供了方便。
具体实施方式
本发明所提供的文字变形特效处理方法及装置,为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提供的一种文字变形特效处理方法,如图2所示,主要包括以下步骤:
步骤S110、设置由一个初始规则矩形和多个控制点组成的文字变形设计器,控制点用于控制该文字变形设计器的矩形进行线性变形或二次型变形。
其中,设置该文字变形设计器提供两种工作模式,一种用于设计线性变形特效,另一种则用来设计二次型变形特效。本实施例中文字变形设计器主要由一个初始规则矩形和四个控制点组成,用户通过拖动4个控制点,设计出自己想要的目标形状。文字变形设计器的设计如图3和图4所示。当控制该文字变形设计器的矩形进行线性变形时,指定初始矩形的控制点为四个角顶点,如图3所示的LT、RT、RB、LB。当控制该文字变形设计器的矩形进行二次型变形时,指定初始矩形的控制点为矩形四条边上的中点,如图4所示的MT、RM、MB、LM。
图3表示了用于设计线性变形特效的文字变形设计器的结构示意图,通过该设计器用户可以设计线性变形特效;其中,线性变形特效是指文字变形特效中,所有的拉伸变形都是直线型的。图3中的文字变形设置器由一初始规则矩形10和对应矩形四个角顶点LT、RT、RB、LB组成,四个角顶点LT、RT、RB、LB为该图3的文字变形设计器的四个控制点,指定初始矩形四个控制点的初始坐标分别为LT(-1, 1), RT(1, 1), RB(1, -1) ,LB(-1, -1)。
图4展示了用来设计二次型变形特效的文字变形设计器的结构示意图,通过该设计器用户可以设计二次型变形特效,其中,二次型变形特效是指:文字变形特效中,拉伸变形是抛物线的。该图4所示的实施例中四个控制点定在矩形四条边的中上,分别为:MT、RM、MB、LM。指定该初始矩形四个控制点的初始坐标分别为MT(0,1)、RM(1,0)、MB (-1,0)、LM (0,-1)。
步骤S120、接收用户输入的需要变形的文字,将该需要变形的文字转换为矢量图形,输入到文字变形设计器。
矢量图使用直线和曲线来描述图形,这些图形的元素是一些点、线、矩形、多边形、圆和弧线等等。本发明实施例中将需要变形的文字数据输入到文字变形设计器中,以使文字跟随文字变形设计器的变化而变形。
步骤S130、接收用户拖动文字变形设计器的控制点的操作指令,根据文字变形设计器动态建立的数学模型将文字矢量图形进行线性变形和/或二次型变形。
本发明实施例中,将用户的操作指令转化为文字变形参数,该文字变形参数包括初始控制点参数与矢量运动参数,其中,在线性变形时,如前所述的四个角顶点LT、RT、RB、LB为该图3的文字变形设计器的四个控制点,指定初始矩形四个控制点的初始坐标分别为LT(-1, 1), RT(1, 1), RB(1, -1) ,LB(-1, -1),表示为线性变形的初始控制点参数。在二次型变形时,其初始控制点参数为指定该初始矩形四个控制点的初始坐标MT(0,1)、RM(1,0)、MB (-1,0)、LM (0,-1)。
本发明实施例的文字变形设计器可以根据用户选择的变形类型和用户拉伸后所确定的目标形状,抽象出变换后各个控制点的坐标,输出一个表示变形类型的参数E以及一个2行2列的矩阵(即矢量运动参数)记为:
其中参数E代表文字变形的类型,取值为1或者2,1代表为线性变形,2代表为二次型变形。矩阵M的四个元素Point1,Point2,Point3,Point4分别对应4个控制点的位置,对于线性变形分别依次对应图3中的LT,RT,LB,RB四个点的相对坐标,对于二次型变形分别对应图4中的MT,RM,MB,LM四个点的相对坐标。
另外本发明的文字变形设计器还可以根据用户设计的目标形状生成该类文字变形特效的缩略图,方便用户自定义文字变形特效模板。
接上所述,根据数学知识可以知道,确定一条直线需要两个点,确定一条二次抛物线则需要3个点。
根据文字变形设计器输出的参数E,可以得知用户设计的文字变形特效的类型,即目标变形形状是线性的还是二次型的抛物线。
a) 第一种变形抛物线为直线的情况,即文字变形设计器是进行线性变形,则该文字变形设计器矩形的四个角顶点为该四个控制点。已知两点可以确定一条直线,因此根据四个顶点的数据就可以确定出文字变形的抛物线模型的函数,然后根据函数对文字的位置做相应处理就可生成最终的文字变形特效。具体如下所述。
如图5所示,当控制该文字变形设计器的矩形进行线性变形时,其控制点为四个角顶点坐标,并设置变化前的四个控制点位置为a、b、c、d;变化后的文字变形设计器四个控制点位置为a’、b’、c’、d’。当该边框的顶点b,c两个顶点的位置拖动至b’、 c’位置时,可以看出此时边框形状已经发生变化。上面模型对应的文字变形特效如图6a、图6b所示,图6a是变化前的文字,图6b是应用变形特效后的文字。
根据本发明实施例的文字变形设计器的变形处理,可以得到图5中变化前的文字变形设计器矩形的四个角的坐标分别为a(-1, 1), b(1, 1), c(1, -1), d(-1, -1),假设图5的线性文字变形例中b点上升了0.2个单位到b’,c点上升了1.1个单位到c’,则变形后的矩阵可以表示为:
将变化后的四个控制点的坐标数据输出,其中Point1,Point2,Point3,Point4分别代表变形后a’,b’,c’,d’的坐标。根据已知两点确定一条直线,设直线方程y = kx+ h,则将Point1(即a’的坐标(x,y)=(-1,1)),Point2(b’ 的坐标(x,y)=(1,1.2))两个点代入直线方程y = kx + h,如下:
求解得:k=0.5,h=0.7。
则可确定出变形后a’b’这条直线的方程y = 0.5x + 0.7。
同理将直线b’c’、 直线c’d’、 直线d’ a’中各直线的两端点坐标依次代入直线方程:y = kx + h(其中,x,y为坐标值数据),求解依次得出直线a’ b’的直线方程函数、 直线b’c’ 的直线方程函数、 直线c’d’ 直线方程函数、 直线d’ a’的直线方程函数。这样可以建立一个从区域abcd到区域a’b’c’d’的线性映射关系。
b) 第二种抛物线为2次抛物线的情况。
当文字变形设计器是进行二次型变形时,如图7所示,设该文字变形设计器初始规则矩形四条边上的中点为该四个控制点;并设置变化前的四个控制点位置为e、f、g、h;变化后的文字变形设计器四个控制点位置为e’、 f’、 g’、 h’。
本发明中的二次抛物线均使用抛物线,已知三个点可以确定一条抛物线,因此根据文字变形特效设计器输出的四个控制点的坐标加上四个顶点(在二次型变形中,四个定点的坐标不动)的数据就可以确定出文字变形抛物线的函数,然后根据函数对文字的位置做相应处理就可生成最终的文字变形特效。
如图7所示,设默认文字的边框矩形的四个角,分别记做a,b,c,d。而变化前的四个控制点位置为e、f、g、h;变化后的文字变形设计器四个控制点位置为e’、 f’、 g’、 h’;当该边框上各边的中点e、f、g、h被拖动至e’、 f’、 g’、 h’时,该模型对应的文字变形特效如图8a、图8b所示,图8a是变化前的文字,图8b是应用文字特效后的文字。
根据本发明实施例的文字变形设计器的变形处理,可以得到四个角的坐标分别为a(-1, 1), b(1, 1), c(1, -1), d(-1, -1)。而图7中变化前的四个控制点中点e、f、g、h坐标分别设为e(0,1)、f(1,0)、g(-1,0)、h(0,-1):假设图8的线性文字变形例子中e、g两个点向内压缩了0.3个单位; f、 h两点向外扩张了0.2个单位,则变形后的矩阵可以表示为:
其中该实施例中Point1,Point2,Point3,Point4分别代表变形后e’,f’,g’,h’的坐标,设直线方程y = kx + h,设曲线方程为:
如图8所示,则将a,e’,b三个点的坐标值a(-1, 1), e’(0,0.7),b(1, 1)代入曲线方程(公式3),如下:
求解得:i=0.3,j=0,q=0.7则可确定出变形后a,e’,b这条抛物线的曲线方程为:
。
同理,将抛物线b f’c,抛物线c g’d和抛物线d h’a中各抛物线的两个端点和一个中点的坐标值代入曲线方程(公式3),分别求解i,j,q,可以计算出其他几条抛物线的方程。这样可以建立一个从区域efgh到区域e’ f’ g’ h’变换后的区域的映射模型。
步骤S140、文字变形设计器输出经过变形后的特效文字图形。
由上可见,本发明实施例中线性变形或二次型变形两种文字变形特效的模型都已建立起来了,接下来借助Windows系统提供的GDI(GraphicsDeviceInterface图形设备接口)+图形库,将文字存入GraphicsPath(windows图形库中的一个类,用于记录用户绘制的所有过程,可以提供一次性绘制出所有内容的功能)中,其中,GraphicsPath是windows图形库中的一个类,用于记录用户绘制的所有过程,可以提供一次性绘制出所有内容的功能。然后可以获取到PathData数据,其数据结构为记录文字的控制点的集合,其中PathData是windows图形库中的一个辅助类,用于记录Graphicspath中的数据。然后根据建立起的线性映射关系,经过计算就可以得到某一点在变换后的位置,移动完成所有的点以后,就得到了目标文字变形特效。
本步骤S140中,还包括对生成的特效文字图形进行分割,根据输入文字的个数生成独立的子字块,在具体实施时,可以根据字与字之间的空白间隙在图像行垂直投影上形成的空白间隔,以及汉字间的间隔大于汉字内间隔这一规则,对生成的特效文字图形进行汉字的分割,根据输入文字的个数分割生成独立的子字块。
其中,字分割是从分割出的文本图像行中将单个的字符图像分割出来。字分割的正确与否直接影响识别结果,下面以单个的汉字分割为例来说明:
譬如、可以借助汉字图像行分割的思想,来确定字分割的主要方法:利用字与字之间的空白间隙在图像行垂直投影上形成的空白间隔将单个的字符图像分割出来。
而事实上,分析图像行的垂直投影可以发现,垂直投影上的空白间隔部分不仅没有行与行之间的空白间隔部分宽,而且分布也不均匀。是因为在汉字文本中一般汉字间距远不如行间距明显,同时汉字中有相当数量汉字是左、右结构或左、中、右结构的,这些汉字图像的垂直投影在一个单字的内部也会出现空白间隙,使得文本汉字的字分割比行分割困难。
为了解决这个问题,可以利用汉字间的间隔一般大于汉字内间隔这一特点先进行汉字的粗分割,再根据汉字基本是个方块图形这一事实进行细分割。
具体实现为:根据汉字的行分割,可以获得汉字的高度信息,从而可以估计出汉字的基本宽度;对粗分割出的每个汉字,以此宽度信息进行衡量,以粗分割的起始位置为出发点,向左右两方向进行搜索,对起始位置进行细微的调整,从而使得字的分割更准确。这种方法不仅可以保证单个汉字的内部结构不被分离,而且还避免了切除汉字的边缘,其分割结果基本提取出了完整的汉字,消除了笔划的误切除。这样,对生成的特效文字图形进行分割成多个独立的子字块再通过文字变形设计器输出经过变形后的特效文字图形。
由上可见,本发明实施例降低了完成一种文字特效所要花费的人工成本,同时降低了研发成本,可以通过简单的调节矩阵参数即可实现不同的文字形状特效,而不再需要针对特定的特效进行研发。并使装置增加了可对文字进行任意变形的新功能,并且实现对生成的字块对每个字形进行分割,每个字形形状连贯,并且可以自由移动编辑,让用户可以轻松的制作出自己喜欢的文字变形特效,为用户提供了方便,提升了用户体验。
基于上述实施例的文字变形特效处理方法,本发明实施例还提供了一种文字变形特效处理装置,如图9所示,包括:
文字变形设计器创建模块910,用于设置由一个初始规则矩形和多个控制点组成的文字变形设计器,控制点用于控制该文字变形设计器的矩形进行线性变形或二次型变形;具体如上所述。
接收与输入模块920,用于接收用户输入的需要变形的文字,将该需要变形的文字转换为矢量图形,输入到文字变形设计器;具体如上所述。
模型建立与特效变形模块930,用于接收用户拖动文字变形设计器的控制点的操作指令,根据文字变形设计器动态建立的数学模型将文字矢量图形进行线性变形和/或二次型变形;具体如上所述。
输出模块940,用于通过文字变形设计器输出经过变形后的特效文字图形;具体如上所述。
其中,所述文字变形设计器创建模块910包括:第一设置单元和第二设置单元;
第一设置单元,用于当控制该文字变形设计器的矩形进行线性变形时,指定初始矩形的控制点为四个角顶点;具体如上所述。
第二设置单元,用于当控制该文字变形设计器的矩形进行二次型变形时,指定初始矩形的控制点为矩形四条边上的中点;具体如上所述。
其中,所述模型建立与特效变形模块930包括:
转化单元,用于将用户的操作指令转化为文字变形参数,该文字变形参数包括初始控制点参数与矢量运动参数;具体如上所述。
所述文字变形特效处理装置,其中,所述输出模块包括:
分割单元,用于根据字与字之间的空白间隙在图像行垂直投影上形成的空白间隔,以及汉字间的间隔大于汉字内间隔这一规则,对生成的特效文字图形进行汉字的分割,根据输入文字的个数分割生成独立的子字块。
综上所述,本发明所提供的文字变形特效处理方法及装置,由于采用了设置由一个初始规则矩形和四个控制点组成的文字变形设计器,四个控制点用于控制该文字变形设计器的矩形进行线性变形或二次型变形;接收用户的操作指令拖动文字变形设计器的四个控制点,将文字变形设计器进行线性变形和/或二次型变形;根据文字变形设计器的进行线性变形和/或二次型变形动态建立数学模型,并进行处理自动将用户输入的需要变形的文字生成为变形特效文字,本发明实施例降低了完成一种文字特效所要花费的人工成本,同时降低了研发成本,可以通过简单的调节矩阵参数即可实现不同的文字形状特效,而不再需要针对特定的特效进行研发。并使装置增加了可对文字进行任意变形的新功能,让用户可以轻松的制作出自己喜欢的文字变形特效,为用户提供了方便。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。