本发明涉及计算机中字体显示,具体涉及一种实现字体翻转的方法、装置、设备和存储介质。
背景技术:
1、电脑系统的图形化界面都会用到字体,使用字体绘制文字的时候,会根据不同效果,由字体引擎对字体进行一些变形,如粗体、翻转等。
2、目前,实现字体翻转的方法较为单一,比如word中使用的是水平翻转或/和垂直翻转文本框,进而实现字体的翻转。
技术实现思路
1、本发明提供一种实现字体翻转的方法。
2、本发明的技术方案如下:
3、本发明提供了一种实现字体翻转的方法,包括以下步骤:
4、判断字体旋转角度是否为预设角度,如果为预设角度,则判断是否能启用位图模式,
5、如果能启用位图模式,则使用位图模式,计算翻转图像数据区的大小,新建翻转图像数据区,对位图模式图像进行翻转操作,实现对字体的翻转,如果不能启用位图模式,则使用矢量模式,新建翻转矩阵,设置翻转矩阵的xx、xy、yx和yy四个成员变量,通过设置翻转矩阵的四个成员变量的值,实现对字体的翻转;
6、所述预设角度为0度、或90度、或180度、或270度;
7、所述字体翻转为字体左右式翻转或/和上下式翻转。
8、本发明所述使用位图模式,进行翻转操作,具体包括以下步骤:
9、获取源位图模式图像后,根据公式:翻转图像数据区的大小=源图像数据区行数*源图像数据区步进,计算翻转图像数据区的大小,新建翻转图像数据区,用于存储翻转图像数据,
10、若字体进行左右式翻转,则对位图模式图像进行左右式翻转操作,若字体进行上下式翻转,则对位图模式图像进行上下式翻转操作,将翻转图像数据区的数据,复制到源位图模式图像数据区。
11、本发明所述使用位图模式,进行左右式翻转操作,具体包括以下步骤:位图模式图像下,若存在需要继续处理的图像行,则将当前位置的x、y坐标作为源图像数据区x、y坐标,
12、根据计算公式:目标图像数据区x坐标=源图像数据区宽度-1-x,计算目标图像数据区x坐标,根据计算公式:目标图像数据区y坐标=y,计算目标图像数据区y坐标,将上述坐标作为参数,复制源图像数据区的数据到目标图像数据区后,完成左右式翻转操作。
13、本发明所述使用位图模式,进行上下式翻转操作,具体包括以下步骤:位图模式图像下,若存在需要继续处理的图像行,则根据计算公式:源图像数据区偏移=源图像数据区步进*y,计算源图像数据区偏移,
14、根据计算公式:目标图像数据区偏移=源图像数据区步进*(源图像数据区行数-1-y),计算目标图像数据区偏移,
15、将源图像数据区偏移位置开始的数据,复制到目标图像数据区偏移开始位置,数据数量是源图像数据区步进个字节,完成上下式翻转操作。
16、本发明所述使用矢量模式,进行翻转操作,具体包括以下步骤:
17、矢量模式下,新建翻转矩阵,并将所述新建翻转矩阵的xx、xy、yx和yy四个成员变量都设置为0,若字体进行左右式翻转,则翻转矩阵的xx设置为-65536,yy设置为65536,xy、yx均设置为0,使用翻转矩阵进行左右式翻转,若字体进行上下式翻转,则翻转矩阵的xx设置为65536,yy设置为-65536,xy、yx均设置为0,使用翻转矩阵进行左右式翻转。
18、本发明所述使用位图模式,进行翻转操作,还包括调整插槽位置,使用位图模式,进行左右式翻转操作,若字体位图模式图像需要调整插槽位置,则根据计算公式:目标图像数据区的插槽左边位置=-(源图像数据区宽度+源图像数据区的插槽左边位置),调整插槽位置;
19、使用位图模式,进行上下式翻转操作,若字体位图模式图像需要调整插槽位置,且源图像数据区行数大于等于源图像数据区的插槽顶部位置,则根据计算公式:目标图像数据区的插槽顶部位置=-源图像数据区的插槽顶部位置+源图像数据区行数,调整插槽位置,若源图像数据区行数小于源图像数据区的插槽顶部位置,则根据计算公式:目标图像数据区的插槽顶部位置=-源图像数据区的插槽顶部位置,调整插槽位置。
20、本发明所述使用位图模式,进行翻转操作,还包括计算图像结构步进,进行位图像素扩展,具体包括以下步骤:
21、对位图图像进行像素扩展,设置目标图像结构为字节像素模式,并设置目标图像结构支持的灰度数量为256,若目标图像数据区的像素为位模式,则根据计算公式:目标图像数据区步进=(目标图像数据区宽度+7)/8,计算目标图像数据区步进,
22、若目标图像数据区的像素不是位模式,则根据计算公式:目标图像数据区步进=目标图像数据区宽度,计算目标图像数据区步进。
23、本发明还提供了一种实现字体翻转的装置,包括:
24、位图模式字体翻转模块:使用位图模式,计算翻转图像数据区的大小,新建翻转图像数据区,对字体进行左右式翻转或/和上下式翻转;
25、矢量模式字体翻转模块:使用矢量模式,新建翻转矩阵,设置翻转矩阵的大小,使用翻转矩阵对字体进行左右式翻转或/和上下式翻转;
26、位图模式判断模块:用于判断是否成功启用位图模式;
27、调整插槽信息模块:用于判断并设置位图模式下的插槽位置。
28、本发明还提供了一种实现字体翻转的设备,包括处理器和存储器,其中,所述处理器执行所述存储器中保存的计算机程序时实现所述的实现字体翻转的方法。
29、本发明还提供了一种实现字体翻转的存储介质,用于存储计算机程序,其中,所述计算机程序被处理器执行时实现所述的实现字体翻转的方法。
30、有益效果
31、本发明提供了一种实现字体翻转的方法,在字体旋转角度为0度、或90度、或180度、或270度时,根据是否启用位图模式,选择相应地模式进行操作,实现字体左右式翻转或/和上下式翻转,从而使字体翻转操作更便捷。另外,在位图模式下进行字体翻转后,还可以设置插槽位置,从而保证字体位图的宽度、高度,与字符的实际宽度、高度保持一致,避免字体位图位置发生错误。
1.一种实现字体翻转的方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种实现字体翻转的方法,其特征在于,所述使用位图模式,进行翻转操作,具体包括以下步骤:
3.根据权利要求2所述的一种实现字体翻转的方法,其特征在于,所述使用位图模式,进行左右式翻转操作,具体包括以下步骤:
4.根据权利要求2所述的一种实现字体翻转的方法,其特征在于,所述使用位图模式,进行上下式翻转操作,具体包括以下步骤:
5.根据权利要求1所述的一种实现字体翻转的方法,其特征在于,所述使用矢量模式,进行翻转操作,具体包括以下步骤:
6.根据权利要求2-4任一项所述的一种实现字体翻转的方法,其特征在于,所述使用位图模式,进行翻转操作,还包括调整插槽位置,
7.根据权利要求2-4任一项所述的一种实现字体翻转的方法,其特征在于,所述使用位图模式,进行翻转操作,还包括计算图像结构步进,进行位图像素扩展,具体包括以下步骤:
8.一种实现字体翻转的装置,其特征在于,包括:
9.一种实现字体翻转的设备,其特征在于,包括处理器和存储器,其中,所述处理器执行所述存储器中保存的计算机程序时实现所述权利要求1-7中任一项所述的实现字体翻转的方法。
10.一种实现字体翻转的存储介质,其特征在于,用于存储计算机程序,其中,