一种实现字体斜体效果的方法及系统技术方案

技术编号:39149155 阅读:10 留言:0更新日期:2023-10-23 14:58
本申请涉及计算机中字体显示技术领域,特别涉及一种实现字体斜体效果的方法及系统。通过设置倾斜幅度、中文斜体效果、字体的四个旋转方向的右斜或者左斜的方向,根据旋转角度选择斜体操作,包括正常斜体操作、矢量斜体操作、斜体位图横向操作和斜体位图竖向操作,其中斜体位图横向操作通过初始化横向目标、计算插槽横向偏移、调整插槽横向信息来实现。通过以上操作实现倾斜幅度可修改的中文斜体效果。操作实现倾斜幅度可修改的中文斜体效果。操作实现倾斜幅度可修改的中文斜体效果。

【技术实现步骤摘要】
一种实现字体斜体效果的方法及系统


[0001]本申请涉及计算机中字体显示
,特别涉及一种实现字体斜体效果的方法及系统。

技术介绍

[0002]电脑系统的图形化界面,都用到字体。通过字体引擎加载字体后,即可以使用字体进行绘制。使用字体绘制文字的时候,会根据不同设置,由字体引擎进行一些变形,如粗体、斜体、旋转等。
[0003]不同的字体引擎,在实现字体的各种处理上,有不同的实现方式。经常使用的字体引擎,在处理斜体时,往往只能有一种倾斜角度和一个倾斜方向,无法实现倾斜角度和倾斜方向的随意设置。

技术实现思路

[0004]本专利技术提供了一种可以设置字体倾斜角度和倾斜方向的实现字体斜体效果的方法。
[0005]本申请的技术方案如下:
[0006]一种实现字体斜体效果的方法,包括以下步骤:
[0007]判断字体旋转角度是否为预设角度,如果为预设角度,则判断是否能启用位图模式,
[0008]如果能启用位图模式,则根据字体的倾斜幅度,使用横向斜体操作或者竖向斜体操作,实现字体斜体效果,
[0009]如果不能启用位图模式,则使用矢量斜体操作,实现字体斜体效果。
[0010]所述的使用横向斜体操作,实现字体斜体效果,具体包括以下步骤:
[0011]初始化横向目标对象后,计算插槽横向偏移,
[0012]如果是顺时针方式斜体,根据公式顺时针方式斜体横向移动值=四舍五入取整((源图像的插槽顶部位置

源图像y坐标)*倾斜幅度绝对值)+横向插槽偏移,计算顺时针方式斜体横向移动值,
[0013]如果是逆时针方式斜体,则根据计算公式逆时针方式斜体横向移动值=视图倾斜值

顺时针方式斜体横向移动值,计算逆时针方式斜体横向移动值,计算目标图像数据区x坐标为源图像数据区x坐标+顺时针方式斜体横向移动值或逆时针方式斜体横向移动值,目标图像数据区y坐标为源图像数据区y坐标;
[0014]所述的使用竖向斜体操作,实现字体斜体效果,具体包括以下步骤:
[0015]初始化竖向目标对象后,计算插槽竖向偏移,
[0016]如果是顺时针方式斜体,根据公式顺时针方式斜体竖向移动值=四舍五入取整((源图像x坐标+源图像的插槽左边位置)*倾斜幅度绝对值)

竖向插槽偏移,顺时针方式斜体竖向移动值,
[0017]如果字体是逆时针方式斜体,则根据计算公式逆时针方式斜体竖向移动值=视图倾斜值

顺时针方式斜体竖向移动值,计算逆时针方式斜体竖向移动值,计算目标图像数据区x坐标为源图像数据区x坐标,目标图像数据区y坐标=源图像数据区y坐标+顺时针方式斜体竖向移动值或逆时针方式斜体竖向移动值。
[0018]所述的初始化横向目标对象,包括以下步骤:
[0019]计算横向视图高度、视图倾斜值、目标图像宽度、目标图像行数、目标图像步进、横向目标图像数据区大小、建立横向目标图像数据区;
[0020]所述的初始化竖向目标对象,包括以下步骤:
[0021]计算竖向视图宽度、视图倾斜值、目标图像宽度、目标图像行数、目标图像步进、竖向目标图像数据区大小、建立竖向目标图像数据区。
[0022]所述的计算横向视图高度,包括以下步骤:
[0023]根据计算公式:横向视图高度=源图像的插槽顶部位置,计算横向视图高度,若横向视图高度大于等于0,且源图像行数大于横向视图高度,则根据计算公式:横向视图高度=源图像行数,重新计算横向视图高度,
[0024]若横向视图高度小于0,则横向视图高度取反后作为新的横向视图高度;
[0025]所述的计算竖向视图宽度,包括以下步骤:
[0026]根据计算公式:竖向视图宽度=源图像的插槽左边位置,计算竖向视图宽度,若竖向视图宽度大于等于0,且源图像的宽度大于竖向视图宽度,则根据计算公式:竖向视图宽度=源图像的宽度,重新计算竖向视图宽度,
[0027]若竖向视图宽度小于0,则竖向视图宽度取反后作为新的竖向视图宽度。
[0028]所述的计算插槽横向偏移,包括以下步骤:
[0029]根据计算公式:目标图像的插槽顶部位置=源图像的插槽顶部位置,计算目标图像的插槽顶部位置,若字体旋转角度是90度且文字的排列方向不是从上到下,或旋转角度为180度,则目标图像的插槽顶部位置取反,若源图像行数大于目标图像的插槽顶部位置,则根据计算公式:四舍五入取整(倾斜幅度绝对值*(源图像行数

源图像插槽的顶部位置)),计算插槽横向偏移;
[0030]若源图像行数不大于目标图像的插槽顶部位置,当前旋转角度为180度,则根据计算公式:四舍五入取整(倾斜幅度绝对值*目标图像的插槽顶部位置),计算插槽横向偏移,
[0031]若源图像行数不大于目标图像的插槽顶部位置,当前旋转角度非180度,则插槽横向偏移为0。
[0032]所述的计算插槽竖向偏移,包括以下步骤:
[0033]根据计算公式:目标图像的插槽左边位置=源图像的插槽左边位置,计算目标图像的插槽左边位置,若字体旋转角度是180度或270度,则目标图像的插槽左边位置取反,
[0034]若源图像的宽度大于目标图像的插槽左边位置,根据计算公式:目标图像的插槽左边位置=源图像的宽度,计算目标图像的插槽左边位置,
[0035]若源图像的宽度不大于目标图像的插槽左边位置,若旋转角度是90度,或旋转角度是270度,或旋转角度是0度且文字的排列方向是从上到下,或旋转角度是180度且文字的排列方向是从上到下,则根据计算公式:插槽竖向偏移=四舍五入取整(倾斜幅度绝对值*源图像的插槽左边位置)计算插槽竖向偏移,若否,如果源图像的宽度大于源图像的插槽左
边位置,则根据计算公式:插槽竖向偏移=四舍五入取整(倾斜幅度绝对值*目标图像的插槽左边位置)计算插槽竖向偏移,如果源图像的宽度不大于源图像的插槽左边位置,则插槽竖向偏移为0。
[0036]所述的横向斜体操作实现斜体效果,还包括调整插槽横向信息,包括以下步骤:
[0037]如果为逆时针方式斜体,且插槽横向偏移大于0,则根据计算公式:新插槽横向偏移=视图倾斜值

插槽横向偏移,重新计算插槽横向偏移;
[0038]如果为逆时针方式斜体,且插槽横向偏移不大于0,则根据计算公式:新插槽横向偏移=视图倾斜值+插槽横向偏移,重新计算插槽横向偏移;
[0039]如果插槽横向偏移不等于0,或者为顺时针方式斜体且插槽横向偏移不等于0,则根据计算公式:目标图像的插槽左边位置=源图像的插槽左边位置

插槽横向偏移,调整插槽横向信息。
[0040]所述的竖向斜体操作实现斜体效果,还包括调整插槽竖向信息,包括以下步骤:
[0041]如果倾斜方式为逆时针,若旋转角度是90度且文字的排列方向不是从上到下,或旋转角度是0度且文字的排列方向是从上到下,或旋本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种实现字体斜体效果的方法,其特征在于,包括以下步骤:判断字体旋转角度是否为预设角度,如果为预设角度,则判断是否能启用位图模式,如果能启用位图模式,则根据字体的倾斜幅度,使用横向斜体操作或者竖向斜体操作,实现字体斜体效果,如果不能启用位图模式,则使用矢量斜体操作,实现字体斜体效果。2.根据权利要求1所述的一种实现字体斜体效果的方法,其特征在于,所述的使用横向斜体操作,实现字体斜体效果,具体包括以下步骤:初始化横向目标对象后,计算插槽横向偏移,如果是顺时针方式斜体,根据公式顺时针方式斜体横向移动值=四舍五入取整((源图像的插槽顶部位置

源图像y坐标)*倾斜幅度绝对值)+横向插槽偏移,计算顺时针方式斜体横向移动值,如果是逆时针方式斜体,则根据计算公式逆时针方式斜体横向移动值=视图倾斜值

顺时针方式斜体横向移动值,计算逆时针方式斜体横向移动值,计算目标图像数据区x坐标为源图像数据区x坐标+顺时针方式斜体横向移动值或逆时针方式斜体横向移动值,目标图像数据区y坐标为源图像数据区y坐标;所述的使用竖向斜体操作,实现字体斜体效果,具体包括以下步骤:初始化竖向目标对象后,计算插槽竖向偏移,如果是顺时针方式斜体,根据公式顺时针方式斜体竖向移动值=四舍五入取整((源图像x坐标+源图像的插槽左边位置)*倾斜幅度绝对值)

竖向插槽偏移,顺时针方式斜体竖向移动值,如果字体是逆时针方式斜体,则根据计算公式逆时针方式斜体竖向移动值=视图倾斜值

顺时针方式斜体竖向移动值,计算逆时针方式斜体竖向移动值,计算目标图像数据区x坐标为源图像数据区x坐标,目标图像数据区y坐标=源图像数据区y坐标+顺时针方式斜体竖向移动值或逆时针方式斜体竖向移动值。3.根据权利要求2所述的一种实现字体斜体效果的方法,其特征在于,所述的初始化横向目标对象,包括以下步骤:计算横向视图高度、视图倾斜值、目标图像宽度、目标图像行数、目标图像步进、横向目标图像数据区大小、建立横向目标图像数据区;所述的初始化竖向目标对象,包括以下步骤:计算竖向视图宽度、视图倾斜值、目标图像宽度、目标图像行数、目标图像步进、竖向目标图像数据区大小、建立竖向目标图像数据区。4.根据权利要求3所述的一种实现字体斜体效果的方法,其特征在于,所述的计算横向视图高度,包括以下步骤:根据计算公式:横向视图高度=源图像的插槽顶部位置,计算横向视图高度,若横向视图高度大于等于0,且源图像行数大于横向视图高度,则根据计算公式:横向视图高度=源图像行数,重新计算横向视图高度,若横向视图高度小于0,则横向视图高度取反后作为新的横向视图高度;所述的计算竖向视图宽度,包括以下步骤:根据计算公式:竖向视图宽度=源图像的插槽左边位置,计算竖向视图宽度,若竖向视
图宽度大于等于0,且源图像的宽度大于竖向视图宽度,则根据计算公式:竖向视图宽度=源图像的宽度,重新计算竖向视图宽度,若竖向视图宽度小于0,则竖向视图宽度取反后作为新的竖向视图宽度。5.根据权利要求2所述的一种实现字体斜体效果的方法,其特征在于,所述的计算插槽横向偏移,包括以下步骤:根据计算公式:目标图像的插槽顶部位置=源图像的插槽顶部位置,计算目标图像的插槽顶部位置,若字体旋转角度是90度且文字的排列方向不是从上到下,或旋转角度为180度,则目标图像的插槽顶部位置取反,若源图像行数大于目标图像的插槽顶部位置,则根据计算公式:四舍五入取整(倾斜幅度绝对值*(源图像行数

源图像插槽的顶部位置)),计算插槽横向偏移;若源图像行数不大于目标图像的插槽顶部位置,当前旋转角度为180度,则根据计算公式:四舍五入取整(倾斜幅度绝对值*目标图像的插槽顶部位置),计算插槽横向偏移,若源图像行数不大于目标图像的插槽顶部位置,当前旋转角度非180度,则插槽横向偏移为0。6.根据权利要求2所述的一种实现字体斜体效果的方法,其特征在于,所述的计算插槽竖向偏移,包括以下步骤:根据计算公式:目标图像的插槽左边位置=源图像的插槽左边位置,计算目标图像的插槽左边位置,若字体旋...

【专利技术属性】
技术研发人员:王斌柳鲲鹏崔海东冯树荣
申请(专利权)人:泰山信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1