一种页面裁剪方法和装置制造方法

文档序号:6513260阅读:119来源:国知局
一种页面裁剪方法和装置制造方法
【专利摘要】本发明公开了一种页面裁剪方法,包括:生成临时页面;在临时页面中,将被裁剪对象与裁剪区进行第一光栅操作;在目标页面中,将所述进行光栅操作后得到的临时页面与目标页面进行第二光栅操作;其中所述第一光栅操作与所述第二光栅操作为相同或不同的操作。应用本发明所述的页面裁剪方法,只需通过生成临时页面就可以实现对文字或图形图像的裁剪,避免了复杂繁琐的计算过程,使得整个过程简单快捷、实现也比较方便。
【专利说明】一种页面裁剪方法和装置

【技术领域】
[0001]本发明涉及计算机图形图像【技术领域】,特别涉及一种页面裁剪方法和装置。

【背景技术】
[0002]在将文字或图形图像进行显示的时候,根据不同的版面需求,通常只能显示文字或图形图像的一部分,因此,需要对文字或图形图像进行裁剪。
[0003]对文字进行裁剪,也就是根据版面的需求只显示文字的一部分,在对文字进行裁剪时,其实是对文字的轮廓所组成的不规则多边形进行裁剪的。图1为“口”字的轮廓所构成的图形,如图1所示,在对“口”字进行裁剪时,其实是对阴影部分所构成的图形进行裁剪的,因此,对文字的裁剪也就可理解为对图形的裁剪;对图像进行裁剪,也就是根据版面的需求只显示图像的一部分,在对图像进行裁剪时,其实是对图像边线所组成的多边形进行裁剪的,因此,对图像的裁剪也可以理解为对图形的裁剪。也就是说,现有对文字或图形图像进行裁剪其实都是通过对图形进行裁剪来实现的。
[0004]针对不同的图形,又有不同的裁剪算法,目前常用的裁剪算法有针对直线段的直线段裁剪算法和针对多边形的多边形裁剪算法。其中,具体的直线段裁剪算法又有矢量裁剪算法、编码裁剪算法、中点分割裁剪算法、科恩-萨瑟兰(Cohen-Sutherland)裁剪算法以及梁友栋-巴斯基(Barskey)裁剪算法等;具体的多边形裁剪算法有逐边裁剪算法、边界裁剪算法、萨瑟兰-霍治曼(Sutherland-Hodegman)裁剪算法等。虽然上述各种算法的具体裁剪方式不同,但它们的基本思想都是一致的:首先,将裁剪对象对图形的裁剪分解为裁剪对象的每一条边所在的直线对图形的裁剪,这里将裁剪对象的每一条边所在的直线称为裁剪线;其次,将每一条裁剪线对图形的裁剪分解为每一条裁剪线对图形的每一条边的裁剪。下面以Sutherland-Hodegman裁剪算法为例来说明裁剪的具体实现过程。
[0005]图2即为现有Sutherland-Hodegman裁剪算法中用矩形对多边形进行裁剪的过程示意图。如图a所示,矩形ABCD为裁剪对象,也即最终能够在版面上显示的区域,多边形V0V1V2V3为被裁剪对象#、^、^、^、^和P6分别为矩形ABCD与多边形VtlV1V2V3的交点。在进行裁剪时,需要将矩形ABCD对多边形VtlV1V2V3的裁剪分解为矩形的每一条边所在的裁剪线对多边形的裁剪,这里的每一条裁剪线对多边形的裁剪都是通过裁剪线依序对多边形的每一条边进行裁剪来实现的。
[0006]图3给出了一条裁剪线对一个多边形进行裁剪的过程示意图。如图3所示,A’ B’ C’ D’为需要被裁剪的多边形,I’为裁剪线,它将A’ B’ C’ D’所在的平面分成了两个部分,I’右侧为版面上需要显示的部分,故被称为可见一侧,I’左侧为需要被裁剪掉的部分,被称为不可见一侧。裁剪时是按照顺时针方向依次对A’ B’ C’ D’的每一条边进行裁剪的:当对边D’ A’进行裁剪时,这条边上的所有的点都被裁掉了 ;当对边A’ B’进行裁剪时,假设裁剪线I’与A’ B’的交点为P’,则被裁掉的部分是A’以及A’与P’连线上的所有的点,能显示的部分为P’与B’两点确定的一条线段;当对边B’ C’进行裁剪时,这条边上所有的点都能够显示;当对边C’ D’进行裁剪时,假设裁剪线I’与C’ D’的交点为Q’,则被裁掉的部分是D’以及Q’与D’连线上的所有的点,能显示的部分为C’与Q’两点确定的一条线段。
[0007]在图2中共有Ip 12、I3和144条裁剪线,每条裁剪线的裁剪过程都是按照图3所述的裁剪过程来进行:图(b)中的P1P6V1V2V3为用裁剪线I1对多边形VtlV1V2V3进行裁剪后的多边形;图(c)中的P1P6V1V2V3' P2为用裁剪线I2对图(b)中的P1P6V1V2V3进行裁剪后的多边形;图(d)中的P1P6V1 ’ P4V2P3DP2为用裁剪线I3对图(c)中的P1P6V1V2V3' P2进行裁剪后的多边形;图(e)中的P1P6P5CP4V2P3DP2为用裁剪线I4对图(d)中的P1P6V1' P4V2P3DP2进行裁剪后的多边形,即最终需要的被裁剪后的图形。从图(e)中可以看出,最终能够显示的仅仅是多边形在矩形内的部分,也就是图(e)中由P1P6P5CP4V2P3DP2组成的多边形。
[0008]需要说明的是,现有裁剪算法用到的裁剪对象都是闭合区域,该闭合区域也即版面上最终能够显示的区域,上述对Sutherland-Hodegman裁剪算法进行描述中用到的闭合区域为矩形。
[0009]从上述裁剪过程可以看出,现有Sutherland-Hodegman裁剪算法需要用闭合区域的每一条边所在的裁剪线分别对图形进行裁剪,现有其它裁剪算法的基本思想也是一样的。因此,现有算法的计算过程会比较复杂,对于闭合区域为圆形的情况更是如此。


【发明内容】

[0010]有鉴于此,本发明的主要目的在于提供一种页面裁剪方法和装置,能够对要显示的文字或图形图像进行准确地裁剪,而且过程简单、实现方便。
[0011]为达到上述目的,本发明的技术方案具体是这样实现的:
[0012]一种页面裁剪方法,包括:
[0013]生成临时页面;
[0014]在临时页面中,将被裁剪对象与裁剪区进行第一光栅操作;
[0015]在目标页面中,将所述进行光栅操作后得到的临时页面与目标页面进行第二光栅操作;
[0016]其中所述第一光栅操作与所述第二光栅操作为相同或不同的操作。
[0017]一种页面裁剪方法,包括:
[0018]生成临时页面;
[0019]在所述临时页面中,对裁剪区和其他区域分别填充;
[0020]在所述临时页面中,将被裁减对象与临时页面进行第一光栅操作;
[0021]在目标页面中,将所述进行光栅操作后得到的临时页面与目标页面进行第二光栅操作;
[0022]其中所述第一光栅操作与所述第二光栅操作为相同或不同的操作。由上述的技术方案可见,本发明所提出的页面裁剪方法和装置,首先根据目标页面生成临时页面,再通过临时页面与被裁剪对象以及目标页面相互的R0P,从而得到最终所需的被裁剪后页面。该方法只需通过生成临时页面就可以实现对被裁剪对象进行准确地裁剪,避免了复杂繁琐的计算过程,使得整个裁剪过程简单快捷、实现也比较方便。另外,在实际应用中,利用本发明的技术方案,可以提供一种利用临时页面指令代替裁剪指令的新的页面描述方法。

【专利附图】

【附图说明】
[0023]图1为“口”字的轮廓所构成的图形。
[0024]图2为现有Sutherland-Hodegman裁剪算法中用矩形对多边形进行裁剪的过程示意图。
[0025]图3为现有技术中用一条裁剪线对多边形进行裁剪的过程示意图。
[0026]图4为本发明实施例一提供的页面裁剪方法的流程图。
[0027]图5为本发明实施例二提供的页面裁剪方法的流程图。
[0028]图6为本发明实施例三提供的页面裁剪方法的流程图。
[0029]图7为本发明实施例四提供的页面裁剪方法的流程图。

【具体实施方式】
[0030]为解决现有技术中存在的问题,本发明提出一种全新的页面裁剪方法,即通过根据目标页面生成的临时页面与被裁剪对象以及目标页面相互的光栅操作(ROP,RasterOperat1ns),从而得到最终所需的被裁剪后页面。该方法只需通过生成临时页面就可以实现对被裁剪对象进行准确地裁剪,避免了复杂繁琐的计算过程,使得整个过程简单快捷、实现也比较方便。
[0031]需要说明的是,本实施例中所有的页面实际上都是以图像的形式进行存储的,而图像又是将其中的每一个像素以二进制形式存储在计算机内存中的。因此,页面也就是以二进制形式存储在计算机的内存中的。
[0032]为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。在本发明的以下实施例中,以黑白模型为例进行说明,实际上本领域技术人员可以理解,本发明的技术方案同样可以应用于彩色模型,如RGB色彩模型和GMYK色彩模型。
[0033]在本发明中,裁剪区是指由至少一个封闭线构成的填充区,理论上说,裁剪区初始可以填充为白色或者黑色。通常,用户除了指定裁剪区的形状外,还会指定裁剪区在页面上的位置。在本发明的实施例,以两个矩形填充区作为裁剪区为例说明,在实际中,裁剪区域可以是任意形式。另外,在本发明实施例中,将被裁剪对象需要最终显示的页面称为目标页面。
[0034]图4为本发明实施例一提供的页面裁剪方法的流程图。如图4所示,该方法包括以下步骤:
[0035]步骤401:生成临时页面。在本发明实施例中,假设临时页面初始填充为白色。另夕卜,在本发明实施例中,可以假设当每一个像素的二进制形式设置为I时,对应填充为白色。
[0036]临时页面的大小一般不做限制,较优的方案,临时页面大于裁剪区。
[0037]步骤402:在该临时页面中,将被裁剪对象与裁剪区进行R0P,在该进行ROP后的临时页面中,裁剪区中显示的是被裁剪对象,其余区域为白色。
[0038]此时,可以是先在临时页面中绘制被裁剪对象,然后再以指定ROP模式绘制裁剪区;也可以先在临时页面中绘制裁剪区,然后再以指定ROP模式绘制被裁剪对象,在本发明实施例中采用后一种方式。这里,假设裁剪区初始填充为黑色。步骤402具体为:在临时页面中绘制裁剪区,那么此时临时页面中裁剪区区域每一个像素二进制数值为O,其他区域每一个像素二进制数值为1,此时该ROP操作为按位OR操作。再以指定ROP模式绘制被裁减对象为:将被裁剪对象中每一个像素上的二进制形式的数值与临时页面相应像素位置上像素的二进制形式的数值进行OR运算。
[0039]本领域技术人员可以理解:当被裁剪对象小于裁剪区时,那么在该进行ROP后的临时页面中,裁剪区中大于被裁剪对象的部分也是黑色。
[0040]步骤403:在目标页面中,将执行完步骤402后得到的临时页面与目标页面进行R0P,则在进行ROP后的目标页面中,裁剪区上叠加显示了被裁剪对象,其余区域中显示的是目标页面中的原图像。
[0041]同样,这里ROP为按位ROP与操作,即将执行完步骤402后得到的临时页面中每一个像素上的二进制形式的数值分别与目标页面中相应像素位置上的二进制形式的数值进行按位ROP与操作。
[0042]在本发明的另一个实施例中,也可以假设当每一个像素的二进制形式设置为O时,对应填充为白色,那么上述过程中,ROP为按位AND操作。
[0043]以上的描述中,被裁剪对象可以是文字页面或者图形图像页面。在上述实施例中,在最终的目标页面上中,裁剪区上同时叠加显示了目标页面的原始背景图像以及被裁剪对象的图像。而实际上,在对页面进行裁剪时,需要在裁剪区中对目标页面中的背景图像进行覆盖。下面的实施例将对这种情况下的裁剪过程进行详细描述。
[0044]图5即为本发明实施例二提供的页面裁剪方法的流程图。如图5所示,该方法包括以下步骤:
[0045]步骤501:生成临时页面。同样,假设临时页面初始填充为白色,对应的每一个像素的二进制形式设置为I。
[0046]步骤502:在该临时页面中,将被裁剪对象与裁剪区进行R0P,在该进行ROP后的临时页面中,裁剪区中显示的是被裁剪对象,其余区域为白色。这里,同样假设裁剪区初始填充为黑色。
[0047]步骤503:在目标页面中,将目标页面与裁剪区进行R0P,这样进行ROP后的目标页面中,裁剪区中显示的是白色,其余区域仍然为目标页面原有的背景图像,此时ROP为NOTOR操作。具体来说,首先将裁剪区中每一个像素上的二进制形式的数值进行NOT运算,然而在与目标页面相应像素位置上的像素的二进制形式的数值进行OR运算。当然,该步骤的过程也可以是:在目标页面上绘制裁剪区,然后将该裁剪区填充为白。
[0048]步骤504:在步骤503得到的目标页面中,将执行步骤502后得到的临时页面与执行步骤503后得到的目标页面进行R0P,则在最终的目标页面中,裁剪区上叠加显示了被裁剪对象,其余区域中显示的是目标页面中的原有的背景图像。同样,这里光栅操作为按位ROPAND 操作。
[0049]在这两个实施例中,仅仅采用一个临时页面就能够实现对页面的裁剪,节省了具体实现过程中的内存,实施过程更加方便。
[0050]图6即为本发明实施例三提供的页面裁剪方法的流程图。在该实施例中,以被裁减对象为图形图像页面为例进行说明。如图6所示,该方法包括以下步骤:
[0051]步骤601:生成临时页面,在该临时页面中,裁剪区和其他区域被区分填充。这里,具体的过程可以是:在临时页面上直接绘制一个裁剪区。在本实施例中,仍假设裁剪区填充为黑色,临时页面初始填充为白色,则在该步骤后,裁剪区为黑色,其余区域为白色。
[0052]步骤602:在该临时页面中,将图形图像页面与临时页面进行R0P。
[0053]若每一个像素二进制数值为I对应为白色,那么本步骤中ROP操作为按位OR操作。执行本步骤后,在进行ROP后的临时页面中,裁剪区上显示的是图形图像,其余区域为白色。
[0054]步骤603:在目标页面中,将执行步骤602得到的临时页面与目标页面进行R0P。这样,在最终的目标页面中显示的即为符合版面需求的图形图像页面,具体来说,裁剪区上叠加显示被裁剪对象,其余区域中显示的是目标页面原有的背景图像。这里,ROP操作可以是按位AND操作。
[0055]图7即为本发明实施例四提供的页面裁剪方法的流程图。。在该实施例中,以被裁减对象为图形图像页面为例进行说明。如图7所示,该方法包括以下步骤:
[0056]步骤701:生成临时页面,在该临时页面中,裁剪区和其他区域被区分填充。
[0057]步骤702:在该临时页面中,将图形图像页面与临时页面进行R0P。假设步骤701-702同步骤601-602,那么在进行ROP后的临时页面中,裁剪区上显示的是图形图像,其余区域为白色。
[0058]步骤703:再次生成一个临时页面。同样,将裁剪区与其他区域区分填充。在该步骤后,裁剪区为黑色,其余区域为白色。
[0059]步骤704:在目标页面中,将目标页面与步骤703中的临时页面进行R0P。此时ROP操作为按位NOT OR操作,则在进行ROP后的目标页面中,裁剪区上显示为白色,其他区域为目标页面原有的背景图像。具体来说,首先将步骤703得到的临时页面的每一个像素上的二进制形式的数值进行NOT运算,然而在与目标页面相应像素位置上的像素的二进制形式的数值进行OR运算。
[0060]步骤705:在步骤704中得到的目标页面中,将步骤702得到的临时页面与步骤704得到的目标页面进行R0P,这样,在最终的目标页面中即得到符合版面需求的被裁减后的图形图像页面,裁剪区中显示被裁剪对象,其余区域中显示的是目标页面中原有的背景图像。
[0061]本领域技术人员都可以理解:上述实施例二中的步骤602与实施例四中的步骤703-704可以相互替换。
[0062]在本发明一实施例中,被裁减对象也可以是多个对象,此时可以利用一个临时页面将多个被裁减对象转换为如实施例三和四所述的被裁减页面——图形图像页面,具体来说,在该临时页面中绘制该多个被裁减对象即可。
[0063]本领域技术人员可以理解,裁剪区和临时页面初始填充可以是黑色或者白色,另夕卜,在实施例三和四中,在临时页面中对裁剪区和其他区域进行分别填充时,其他的多种组合方式都是可以的;同样,也可以设置白色区域的每一个像素二进制数值为O。本领域技术人员可以理解,以上所列举的一些情况下,只需相应修改ROP操作的逻辑运算法则即可实现本发明。
[0064]基于上述方法,本发明实施例还提供了一种页面裁剪装置,该装置包括:
[0065]临时页面生成单元,用于生成一个临时页面;
[0066]ROP单元,用于在该临时页面中,将被裁剪对象与裁剪区进行第一 R0P;以及在目标页面中,将该进行ROP后的临时页面与目标页面在目标页面上进行第二 R0P。
[0067]在另一个实施例中,该装置包括:
[0068]临时页面生成单元,用于生成一个临时页面;
[0069]填充单元,用于在临时页面生成单元生成的临时页面中,对裁剪区和其他区域分别填充;
[0070]ROP单元,用于在所述临时页面中,将被裁减对象与临时页面进行第一光栅操作;在目标页面中,将所述进行光栅操作后得到的临时页面与目标页面进行第二光栅操作。
[0071]以上装置的具体工作流程请参照图5-图7所示方法实施例中的相应说明,此处不再赘述。
[0072]还需进一步说明的是,本发明实施例不仅适用于RGB色彩模型,同样也适用于GMYK色彩模型等其他色彩模型,实际中以不影响本发明实施例的实现为准。
[0073]总之,本发明实施例所采用的页面裁剪方法和装置,只需生成一个临时页面,通过临时页面、被裁减对象、裁剪区以及目标页面的R0P,实现对被裁剪对象进行准确地裁剪,从而得到最终所需的被裁剪后页面,避免了复杂繁琐的计算过程,使得整个过程简单快捷、实现也比较方便。
[0074]基于以上技术方案,采用临时页面指令,可以设计一种没有裁剪指令的页面描述语言,其描述能力与有裁剪指令的页面描述语言相同,却更易实现。另外,还可以将传统的采用裁剪指令的页面描述语言转换成这种有临时页面带而没有裁剪指令的页面描述语言。如,可以将裁剪指令中的“定义裁剪区”转化为临时页面指令中的“定义临时页面,在临时页面上绘制裁剪区”。将裁剪指令中的“在一个裁剪区中对多个被裁减对象进行裁剪”转化为临时页面指令中的“定义一临时页面,在一临时页面中绘制裁剪区;定义另一临时页面,在该另一临时页面上依次绘制该多个对裁剪对象;将两个临时页面进行ROP操作;将生成的裁剪结果(R0P结果)与目标页面再次进行ROP操作”。
[0075]综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种页面裁剪方法,其特征在于,包括: 生成临时页面; 在临时页面中,将被裁剪对象与裁剪区进行第一光栅操作; 在目标页面中,将所述进行光栅操作后得到的临时页面与目标页面进行第二光栅操作; 其中所述第一光栅操作与所述第二光栅操作为相同或不同的操作。
2.如权利要求1所述的方法,其特征在于,所述在临时页面中,将被裁剪对象与裁剪区进行第一光栅操作包括: 先在临时页面中绘制被裁剪对象,然后再以所述第一光栅操作模式绘制裁剪区;或 先在临时页面中绘制裁剪区,然后再以所述第一光栅操作模式绘制被裁剪对象。
3.如权利要求1所述的方法,其特征在于,在目标页面中,将所述进行光栅操作后得到的临时页面与目标页面进行光栅操作之前,进一步包括: 在目标页面中,将目标页面与裁剪区进行第三光栅操作。
4.如权利要求1所述的方法,其特征在于,在目标页面中,将所述进行光栅操作后得到的临时页面与目标页面进行第二光栅操作之前,进一步包括: 生成第二临时页面; 在所述第二临时页面中,对裁剪区和其他区域分别填充; 在目标页面中,将所述填充后的第二临时页面与所述目标页面进行第四光栅操作。
5.如权利要求1、2或3所述的方法,其特征在于,所述临时页面每一个像素的二进制数值初始设置为1,裁剪区每个像素的二进制数值初始设置为O,所述第一光栅操作和第二光栅操作为按位OR操作。
6.如权利要求5所述的方法,其特征在于,第三光栅操作为按位NOTOR操作。
7.如权利要求4所述的方法,其特征在于,在所述第二临时页面中,填充裁剪区使得裁剪区中每一个像素的二进制数值为0,填充其他区域使得其他区域中每一个像素的二进制数值为I,所述第四光栅操作为按位与非操作;或 在所述第二临时页面中,填充裁剪区使得裁剪区中每一个像素的二进制数值初始设置为1,填充其他区域使得其他区域中每一个像素的二进制数值初始设置为0,所述第四光栅操作为按位或操作。
8.一种页面裁剪方法,其特征在于,包括: 生成临时页面; 在所述临时页面中,对裁剪区和其他区域分别填充; 在所述临时页面中,将被裁减对象与临时页面进行第一光栅操作; 在目标页面中,将所述进行光栅操作后得到的临时页面与目标页面进行第二光栅操作; 其中所述第一光栅操作与所述第二光栅操作为相同或不同的操作。
9.如权利要求8所述的方法,其特征在于,在目标页面中,将所述进行光栅操作后得到的临时页面与目标页面进行光栅操作之前,进一步包括: 在目标页面中,将目标页面与裁剪区进行第三光栅操作。
10.如权利要求8或9所述的方法,其特征在于,在所述临时页面中,填充裁剪区使得裁剪区中每一个像素二进制数值为O,填充其他区域使得其他区域中每一个像素的二进制数值为I,所述第一光栅操作为按位OR操作,所述第二光栅操作为按位AND操作。
【文档编号】G06T11/60GK104517304SQ201310445052
【公开日】2015年4月15日 申请日期:2013年9月26日 优先权日:2013年9月26日
【发明者】王东临 申请人:天津书生软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1