本发明涉及计算机中字体显示,具体涉及一种实现旋转字体粗体或/和斜体效果的方法。
背景技术:
1、电脑系统的图形化界面,都用到字体。通过字体引擎加载字体后,即可以使用字体进行绘制。使用字体绘制文字的时候,会根据不同设置,由字体引擎进行一些变形,如粗体、斜体、旋转等。
2、不同的字体引擎,在实现字体的各种处理上,有不同的实现方式。经常使用的字体引擎,往往只能处理单一倾斜角度下的字体的粗体或/和斜体效果,无法实现旋转字体的粗体或/和斜体效果。
技术实现思路
1、本发明提供一种实现旋转字体粗体或/和斜体效果的方法。
2、本发明的技术方案如下:
3、本发明提供了一种实现旋转字体粗体或/和斜体效果的方法,包括以下步骤:
4、判断字体是否设置为旋转字体的预设模式,如果为旋转字体的预设模式,则判断是否成功启用位图模式,
5、如果成功启用位图模式,则使用位图模式操作,获得字体旋转矩阵,计算旋转矩阵的旋转角度,根据旋转角度对字体图像进行反向旋转,进行粗体或/和斜体操作后,根据旋转角度将粗体或/和斜体后的字体图像进行旋转,
6、如果没有成功启用位图模式,则使用矢量模式操作,获得字体旋转矩阵,计算字体反向旋转矩阵,根据反向旋转矩阵对字体图像进行反向旋转,进行粗体或/和斜体操作后,根据旋转矩阵将粗体或/和斜体后的字体图像进行旋转,
7、所述旋转字体的预设模式中,预设信息包括粗体或/和斜体、和位图模式支持的角度。
8、本发明所述计算旋转矩阵的旋转角度,具体包括以下步骤:
9、获得字体旋转矩阵后,若旋转矩阵xx为0,xy为65536,yx为-65536,yy为0,则旋转矩阵的旋转角度为90度,
10、若旋转矩阵xx为-65536,xy为0,yx为0,yy为-65536,则旋转矩阵的旋转角度为180度,
11、若旋转矩阵xx为0,xy为-65536,yx为65536,yy为0,则旋转矩阵的旋转角度为270度,
12、若旋转矩阵xx为65536,xy为0,yx为0,yy为65536,则旋转矩阵的旋转角度为0度。
13、本发明所述计算字体反向旋转矩阵,具体包括以下步骤:
14、获得字体旋转矩阵后,新建反向旋转矩阵,设置反向旋转矩阵xx为旋转矩阵的xx,设置反向旋转矩阵xy为旋转矩阵的-xy,设置反向旋转矩阵yx为旋转矩阵的-yx,设置反向旋转矩阵yy为旋转矩阵的yy。
15、本发明所述位图模式下进行斜体操作,具体包括以下步骤:
16、根据字体的倾斜幅度,使用横向斜体操作或者竖向斜体操作,实现字体斜体效果。
17、本发明所述横向斜体操作,包括以下步骤:
18、计算字体的横向视图高度进行初始化横向目标对象后,计算插槽横向偏移,同时调整插槽横向信息;
19、所述竖向斜体操作,包括以下步骤:
20、计算字体的竖向视图宽度进行初始化竖向目标对象后,计算插槽竖向偏移,同时调整插槽竖向信息。
21、本发明所述矢量模式下进行斜体操作,具体包括以下步骤:
22、根据计算公式:坐标倾斜值=65536*倾斜幅度,计算矢量模式下变形矩阵的坐标倾斜值,新建变形矩阵,初始化变形矩阵,设置xx/xy/yx/yy四个成员变量分别为65536、0、0、65536,
23、如果文字的排列方向是从上到下的属性,则变形矩阵的类型为第一类矩阵,坐标倾斜值取负后,设置变形矩阵的yx成员变量值为坐标倾斜值,使用变形矩阵,进行矢量斜体操作实现斜体效果;
24、如果变形矩阵非第一类矩阵,则设置变形矩阵的xy成员变量值为坐标倾斜值,然后使用变形矩阵,进行矢量斜体操作实现斜体效果。
25、本发明所述的成功启用位图模式,具体包括以下步骤:
26、在字体允许位图模式的情况下,如果当前字体旋转角度为0度、或90度、或180度、或270度,则启用位图模式,
27、在启用位图模式下,若限制了字体,则获取设置的字体名组,若当前字体名在设置的字体名组之内,则判断是否限制了字号,
28、若限制了字号,则获取设置的字体号组,若当前字号在设置的字体号组之内,则使用位图模式加载该字符的字体图像。
29、本发明还提供了一种实现旋转字体粗体或/和斜体效果的系统,包括:
30、旋转字体的一致化模块:设置字体粗体或/和斜体、位图模式支持的旋转角度;位图模式判断模块:用于判断是否成功启用位图模式;
31、位图模式字体旋转矩阵的旋转角度判断模块:用于判断位图模式下字体旋转矩阵的旋转角度;
32、位图模式粗体或/和斜体操作模块:使用位图模式操作,获得字体旋转矩阵,计算旋转矩阵的旋转角度,根据旋转角度对字体图像进行反向旋转,进行粗体或/和斜体操作后,根据旋转角度将粗体或/和斜体后的字体图像进行旋转,实现旋转字体粗体或/和斜体效果;
33、矢量模式粗体或/和斜体操作模块:使用矢量模式操作,获得字体旋转矩阵,计算字体反向旋转矩阵,根据反向旋转矩阵对字体图像进行反向旋转,进行粗体或/和斜体操作后,根据旋转矩阵将粗体或/和斜体后的字体图像进行旋转,实现旋转字体粗体或/和斜体效果。
34、本发明还提供了一种实现旋转字体粗体或/和斜体效果的设备,包括处理器和存储器,其中,所述处理器执行所述存储器中保存的计算机程序时实现所述的实现旋转字体粗体或/和斜体效果的方法。
35、本发明还提供了一种实现旋转字体粗体或/和斜体效果的存储介质,用于存储计算机程序,其中,所述计算机程序被处理器执行时实现所述的实现旋转字体粗体或/和斜体效果的方法。
36、有益效果
37、本发明提供了一种实现旋转字体粗体或/和斜体效果的方法,采用本方法可以根据是否成功启用位图模式,选择相应的模式进行操作,以实现旋转字体的粗体或/和斜体效果;采用本方法实现旋转字体的粗体或/和斜体,操作更加便捷,显示效果更加美观。
1.一种实现旋转字体粗体或/和斜体效果的方法,其特征在于,包括以下步骤:判断字体是否设置为旋转字体的预设模式,如果为旋转字体的预设模式,则判断是否成功启用位图模式,
2.根据权利要求1所述的一种实现旋转字体粗体或/和斜体效果的方法,其特征在于,所述计算旋转矩阵的旋转角度,具体包括以下步骤:
3.根据权利要求1所述的一种实现旋转字体粗体或/和斜体效果的方法,其特征在于,所述计算字体反向旋转矩阵,具体包括以下步骤:
4.根据权利要求1所述的一种实现旋转字体粗体或/和斜体效果的方法,其特征在于,所述位图模式下进行斜体操作,具体包括以下步骤:
5.根据权利要求4所述的一种实现旋转字体粗体或/和斜体效果的方法,其特征在于,所述横向斜体操作,包括以下步骤:
6.根据权利要求1所述的一种实现旋转字体粗体或/和斜体效果的方法,其特征在于,所述矢量模式下进行斜体操作,具体包括以下步骤:
7.根据权利要求1所述的一种实现旋转字体粗体或/和斜体效果的方法,其特征在于,所述的成功启用位图模式,具体包括以下步骤:
8.一种实现旋转字体粗体或/和斜体效果的系统,其特征在于,包括:
9.一种实现旋转字体粗体或/和斜体效果的设备,其特征在于,包括处理器和存储器,其中,所述处理器执行所述存储器中保存的计算机程序时实现所述权利要求1-7中任一项所述的实现旋转字体粗体或/和斜体效果的方法。
10.一种实现旋转字体粗体或/和斜体效果的存储介质,其特征在于,用于存储计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1-7中任一项所述的实现旋转字体粗体或/和斜体效果的方法。