首页> 中国专利> 用于波特-达夫合成的背景色去除方法

用于波特-达夫合成的背景色去除方法

摘要

本申请涉及用于波特-达夫合成的背景色去除方法。具体地,根据本发明的一个实施例,公开了一种将一组图形对象合成到背景图像上的方法(700)。该方法(700)允许将组合起来的多个对象合成到背景图像上,以产生好似每一个所述图像被单独描绘到背景图像上的结果。具体地,该方法(700)允许在对作为整体的组合起来的多个对象进行操作时进行这样的合成。该方法(700)的原理对接受图形对象输入、产生最终图像的任何描绘系统都适用。

著录项

  • 公开/公告号CN1703724A

    专利类型发明专利

  • 公开/公告日2005-11-30

    原文格式PDF

  • 申请/专利权人 佳能株式会社;

    申请/专利号CN200380100984.0

  • 发明设计人 克雷格·M.·布朗;

    申请日2003-10-29

  • 分类号G06T3/00;G06T11/60;G09G5/02;

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人李春晖

  • 地址 日本东京

  • 入库时间 2023-12-17 16:46:38

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2010-05-05

    授权

    授权

  • 2006-01-18

    实质审查的生效

    实质审查的生效

  • 2005-11-30

    公开

    公开

说明书

技术领域

本发明总体上涉及图形对象的描绘(rendering),尤其涉及使用背景色去除来合成一组图形对象的方法和设备,以及包括计算机可读介质的计算机程序产品,其中记录有用于使用背景色去除来合成一组图形对象的计算机程序。

背景技术

已经开发了许多计算机实现的图形描绘系统,以便能够建立包括图形对象的组合的图形图像。典型的图形描绘系统接受许多输入的图形对象,将所述对象组合起来,得到合成图像。这样的系统一般使用页面描述语言(″Page Description Language(PDL)″)存储对在一个页面上显示的图形对象的软件编码描述。一个PDL描述每一个这样的图形对象,包括每一个对象的属性。这样的属性包括大小、性质和每一个对象的颜色。一个PDL还描述图像对象的各种其它属性,比如与一个对象相关的不透明度(也就是阿尔法通道(透明度通道,alphachannel)),以及用来描绘该对象的合成操作,这将在下面讨论。

图形描绘系统一般被配置为将用PDL描述的图形对象组合起来,形成各种格式的输出。例如,一个图形描绘系统的输出可以包括位图或者被直接发送给输出系统描绘器的描绘命令。许多描绘系统是这样执行对象的这种组合的:将对象一次一个地放置到目标位图中。随着每一个对象被放入目标位图,产生合成的目标位图,其包含任何先前已绘制的对象加上最近被放入该位图的对象。该结果然后又被用作进一步放入其它对象的输入。某些描绘系统可以一次对单个像素、或者对一组像素产生合成操作的最终结果:将图像中的每一个对象组合多次,而不是一次。

每一个输入对象的属性确定了一个对象对最终图像的效果。对象的排序也是重要的,因为每一个对象被依次放入合成位图中,在后的对象可能部分地或者全部地遮挡较早的对象。在PDL描述多个重叠的对象时,所述对象一般被在一个页面上顺序描绘,其中每一个随后的对象可能部分地或者全部地遮挡在前的对象。例如,图1(a)图示了一个描绘三个对象A、B和C而得到的图像100。图1(b)图示了在描绘对象A、B和C期间所涉及的操作。如图1(b)所示,最初的对象B被描绘在对象A上方而产生图像103。然后将对象C描绘在对象A和B的上方而产生图1(a)所示的图像100。由于对象C是被描绘的最后的对象,对象C在一个对象C与对象A和B重叠的区域101中完全遮挡了对象A和B。按照这种方式在一个对象上描绘另一个对象的方法传统上叫做“画家算法”(″Painter′s Algorithm″)。

图形描绘系统的输入和输出色彩信息一般是用与像素的每一种颜色成份相关的强度值来描绘的。例如,对于传统的24位红、绿、蓝(RGB)彩色像素格式,一个像素的每一个彩色成份红、绿和蓝分别用8位(或者一个字节)的值来表示。每一个字节的值表示特定颜色成份(也就是红、绿或者蓝)的强度。另外,每一个24位像素还具有一个相关的不透明度值(也就是阿尔法通道(透明度通道)),其值在0%不透明到100%不透明之间。0%的不透明度值表示一个像素是完全透明的,而100%的不透明度值表示该像素是完全不透明的。

不透明度值允许将多个对象相互叠置来产生这样的合成图像:其中,一个或者多个对象可以被一个或者多个其它透明对象部分遮挡。使用不透明度值来组合对象的操作被称为“合成”(compositing)。例如,可以将表示一件有色玻璃制品的部分不透明的对象置于一个或者多个其它对象上方而产生合成图像。为了产生合成图像,图形描绘系统将表示玻璃的颜色和不透明度值与其它对象的颜色和不透明度值组合起来。这种组合所产生的图形就描绘了所述其它对象透过所述有色玻璃看起来的样子。

作为使用不透明度值来描绘对象的另一个例子,图2(a)图示了一个部分不透明的对象F(例如不透明度值为50%)被合成到一个完全不透明的对象E(例如不透明度值为100%)上,产生一个合成图像200的情况。同样,图2(b)图示了在描绘对象E和F期间所涉及的操作。在图像200的对象F和对象E重叠的一个区域201中,合成像素值代表对象E和对象F的组合。

最近,图形描绘系统从数学上扩展了“画家算法”,使其包括诸如对象相切或者颜色组合等操作。这样的操作可以给出对象相切的效果,或者将光线照射到对象上的效果。例如,图3(a)图示了将对象F复合到对象E上而产生图像300,其中对象E是完全不透明的,对象F是部分不透明的。图3(b)图示了描绘对象E和F所涉及的操作,其中,用来产生图像300的合成操作是“相切”(intersetion(IN))操作。

图18图示了上述每一个合成算子(合成操作符)与多种其它传统的合成操作符(传统上公知为“波特-达夫合成操作符(Porter-DuffCompositing Operators)”)一起的结果。

图形描绘系统也可以被配置为在处理之前将对象组合到一个组中。一般,这样的对象组被处理的方式就好似该组的对象被合并而产生一个单一对象。该单一对象然后可以被放入一个背景图像中。在所有的组成员对象被组合起来之后,在该组被放到背景图像上之前,以这种方式被组合的对象可以作为一个整体被施以操作。

图4(a)图示了描绘三个对象A、B和C以产生图1(a)所见的同一图像100的结果。但是,如图4(b)所示,在这个实例中,对象B和C一开始被组合而形成组X。然后将组X合成到对象A上以产生合成图像100。

在对图4(a)的例子的扩展中,一个组(例如组X)内的每一个对象可以使用不同的合成操作被绘制到一个背景图像(例如图像A)上。例如,一个组的不同对象可以与一个背景图像相切,或者可以用作在该背景图像上的照明条件。当对象被组合在一起以形成单一对象(例如组X)时,将对象进行初始组合以产生一个单一对象,然后将该组合结果放置到一个背景上的技术并不适合。这样的技术不适合的原因是,如果所述对象被组合,则不执行与一个组中的每一个独立对象相关的、需要被执行以单独将每一个对象与背景图像相组合的操作。

作为例子,图5(a)图示了使用“上叠”(OVER)操作符将一个对象E合成到一个对象A上而得到的图像501。然后将一个对象F使用“相切”(IN)操作符合成到图像501上,以产生图5(b)所示的图像500。因此,对于图像500,合成表达式就是(F IN(E OVER A))。

与之对照,图6(a)图示了描绘对象E、A、F所涉及的操作,其中对象E和F被初始组合而产生组Y。图像600的合成表达式是((FIN E)OVER A)。图6(a)的操作产生图6(b)所示的图像600。从图5(b)和图6(b)的比较可以看出,由于对象A、E和F的不同接合,图像500不同于图像600。对象E和F的组合导致在产生图像600时不执行操作(F OVER A)。

为了将组合的多个对象描绘到背景图像上,传统的描绘系统一般取所述背景图像的一个拷贝,然后将所述组中的每一个对象描绘到该拷贝上。这样的描绘系统然后计算背景颜色在合成图像拷贝中的百分比,将此背景颜色从图像拷贝中除去。该描绘系统然后对所述组作为一个整体施加操作。这样的操作的结果然后使用传统的混合操作(blending operation)被合成到原始背景上。

在对象组中的一个对象向背景图像添加颜色或者不透明度时,对于某些传统的合成操作(也就是OVER(上叠)、ATOP(置顶于)、ROVER(下叠)、Multiply(乘)和Plus(加)),传统的描绘系统使用上述方法来产生美学上令人满意的结果。但是,在这样的组中的一个对象从背景图像中去除颜色或者不透明度数据时,传统的描绘系统就不能够令人满意地从被合成到背景上的组的表达中去除背景图像颜色。这样,一组对象就不能对于所有合成操作作为一个整体被合成到背景图像上来产生美学上令人满意的结果。

这样,清楚地存在对合成图形对象的方法的一种需求,要求该方法对于所有的合成操作允许将组合起来的多个对象合成到背景图像上。

发明内容

本发明的一个目的是基本上克服或者至少缓解现有技术方案的一种或者多种缺点。

根据本发明的一个方面,提供了一种将至少一个图形对象与一个图像合成的方法,该对象和该图像具有相关的颜色和不透明度分量值,该方法包括下列步骤:

产生至少一个具有相关的不透明度分量值的不透明度通道;

将所述至少一个对象的颜色和不透明度分量值与所述图像的颜色和不透明度分量值合成;以及

将所述至少一个对象的所述不透明度分量值与所述至少一个不透明度通道的不透明度分量值合成,以产生一个被改变了的不透明度通道,从而,该改变后的不透明度通道代表在与所述至少一个对象的所述颜色和不透明度分量合成之后,所述图像中剩余的与所述图像相关的不透明度分量值。

根据本发明的另一个方面,提供了一种将至少一个图形对象与一个图像合成的方法,该对象和该图像具有相关的颜色和不透明度分量值,该方法包括下列步骤:

产生至少一个具有相关的不透明度分量值的不透明度通道;

将所述至少一个对象的颜色和不透明度分量值与所述图像的颜色和不透明度分量值合成;

将所述至少一个对象的所述不透明度分量值与所述至少一个不透明度通道的不透明度分量值合成,以产生一个被改变了的不透明度通道;以及

使用该改变后的不透明度通道来去除在与所述至少一个对象的所述颜色和不透明度分量合成之后,所述图像中剩余的该图像的颜色和不透明度分量值。

根据本发明的另一个方面,提供了一种将组合在一起的多个图形对象与一个图像合成的方法,每一个所述对象和该图像具有相关的颜色和不透明度分量值,该方法包括下列步骤:

产生至少一个具有相关的不透明度分量值的不透明度通道;

将每一个所述对象的颜色和不透明度分量值与所述图像的颜色和不透明度分量值合成;

将每一个所述对象的所述不透明度分量值与所述至少一个不透明度通道的不透明度分量值合成,以产生一个被改变了的不透明度通道;以及

使用该改变后的不透明度通道来去除在与每一个所述对象的颜色和不透明度分量合成之后,所述图像中剩余的该图像的颜色和不透明度分量值。

根据本发明的另一个方面,提供了一种将至少一个图形对象与一个图像合成的设备,该对象和该图像具有相关的颜色和不透明度分量值,该设备包括:

产生至少一个具有相关的不透明度分量值的不透明度通道的装置;

将所述至少一个对象的颜色和不透明度分量值与所述图像的颜色和不透明度分量值合成的装置;以及

将所述至少一个对象的所述不透明度分量值与所述至少一个不透明度通道的不透明度分量值合成,以产生一个被改变了的不透明度通道的装置,从而,该改变后的不透明度通道代表在与所述至少一个对象的所述颜色和不透明度分量合成之后,所述图像中剩余的与所述图像相关的不透明度分量值。

根据本发明的另一个方面,提供了一种将至少一个图形对象与一个图像合成的设备,该对象和该图像具有相关的颜色和不透明度分量值,该设备包括:

产生至少一个具有相关的不透明度分量值的不透明度通道的装置;

将所述至少一个对象的颜色和不透明度分量值与所述图像的颜色和不透明度分量值合成的装置;

将所述至少一个对象的所述不透明度分量值与所述至少一个不透明度通道的不透明度分量值合成,以产生一个被改变了的不透明度通道的装置;以及

使用该改变后的不透明度通道来去除在与所述至少一个对象的所述颜色和不透明度分量合成之后,所述图像中剩余的该图像的颜色和不透明度分量值的装置。

根据本发明的另一个方面,提供了一种将组合在一起的多个图形对象与一个图像合成的设备,每一个所述对象和该图像具有相关的颜色和不透明度分量值,该设备包括:

产生至少一个具有相关的不透明度分量值的不透明度通道的装置;

将每一个所述对象的颜色和不透明度分量值与所述图像的颜色和不透明度分量值合成的装置;

将所述每一个所述对象的所述不透明度分量值与所述至少一个不透明度通道的不透明度分量值合成,以产生一个被改变了的不透明度通道的装置;以及

使用该改变后的不透明度通道来去除在与每一个所述对象的所述颜色和不透明度分量合成之后,所述图像中剩余的该图像的颜色和不透明度分量值的装置。

根据本发明的另一个方面,提供了一种将至少一个图形对象与一个图像合成的设备,该对象和该图像具有相关的颜色和不透明度分量值,该设备包括:

用于存储程序的存储器;以及

用于执行所述程序的处理器,所述程序包括:

产生至少一个具有相关的不透明度分量值的不透明度通道的代码;

将所述至少一个对象的颜色和不透明度分量值与所述图像的颜色和不透明度分量值合成的代码;以及

将所述至少一个对象的所述不透明度分量值与所述至少一个不透明度通道的不透明度分量值合成,以产生一个被改变了的不透明度通道的代码,从而,该改变后的不透明度通道代表在与所述至少一个对象的所述颜色和不透明度分量合成之后,所述图像中剩余的与所述图像相关的不透明度分量值。

根据本发明的另一个方面,提供了一种将至少一个图形对象与一个图像合成的设备,该对象和该图像具有相关的颜色和不透明度分量值,该设备包括:

用于存储程序的存储器;以及

用于执行所述程序的处理器,所述程序包括:

产生至少一个具有相关的不透明度分量值的不透明度通道的代码;

将所述至少一个对象的颜色和不透明度分量值与所述图像的颜色和不透明度分量值合成的代码;

将所述至少一个对象的所述不透明度分量值与所述至少一个不透明度通道的不透明度分量值合成,以产生一个被改变了的不透明度通道的代码;以及

使用该改变后的不透明度通道来去除在与所述至少一个对象的所述颜色和不透明度分量合成之后,所述图像中剩余的该图像的颜色和不透明度分量值的代码。

根据本发明的另一个方面,提供了一种将组合起来的多个图形对象与一个图像合成的设备,每一个所述对象和该图像具有相关的颜色和不透明度分量值,该设备包括:

用于存储程序的存储器;以及

用于执行所述程序的处理器,所述程序包括:

产生至少一个具有相关的不透明度分量值的不透明度通道的代码;

将每一个所述对象的颜色和不透明度分量值与所述图像的颜色和不透明度分量值合成的代码;

将所述每一个所述对象的所述不透明度分量值与所述至少一个不透明度通道的不透明度分量值合成,以产生一个被改变了的不透明度通道的代码;以及

使用该改变后的不透明度通道来去除在与每一个所述对象的所述颜色和不透明度分量合成之后,所述图像中剩余的该图像的颜色和不透明度分量值的代码。

根据本发明的另一个方面,提供了一种将至少一个图形对象与一个图像合成的计算机程序,该对象和该图像具有相关的颜色和不透明度分量值,该计算机程序包括:

产生至少一个具有相关的不透明度分量值的不透明度通道的代码;

将所述至少一个对象的颜色和不透明度分量值与所述图像的颜色和不透明度分量值合成的代码;以及

将所述至少一个对象的所述不透明度分量值与所述至少一个不透明度通道的不透明度分量值合成,以产生一个被改变了的不透明度通道的代码,从而,该改变后的不透明度通道代表在与所述至少一个对象的所述颜色和不透明度分量合成之后,所述图像中剩余的与所述图像相关的不透明度分量值。

根据本发明的另一个方面,提供了一种将至少一个图形对象与一个图像合成的计算机程序,该对象和该图像具有相关的颜色和不透明度分量值,该计算机程序包括:

产生至少一个具有相关的不透明度分量值的不透明度通道的代码;

将所述至少一个对象的颜色和不透明度分量值与所述图像的颜色和不透明度分量值合成的代码;

将所述至少一个对象的所述不透明度分量值与所述至少一个不透明度通道的不透明度分量值合成,以产生一个被改变了的不透明度通道的代码;以及

使用该改变后的不透明度通道来去除在与所述至少一个对象的所述颜色和不透明度分量合成之后,所述图像中剩余的该图像的颜色和不透明度分量值的代码。

根据本发明的另一个方面,提供了一种将组合起来的多个图形对象与一个图像合成的计算机程序,每一个所述对象和该图像具有相关的颜色和不透明度分量值,该计算机程序包括:

产生至少一个具有相关的不透明度分量值的不透明度通道的代码;

将每一个所述对象的颜色和不透明度分量值与所述图像的颜色和不透明度分量值合成的代码;

将所述每一个所述对象的所述不透明度分量值与所述至少一个不透明度通道的不透明度分量值合成,以产生一个被改变了的不透明度通道的代码;以及

使用该改变后的不透明度通道来去除在与每一个所述对象的所述颜色和不透明度分量合成之后,所述图像中剩余的该图像的颜色和不透明度分量值的代码。

根据本发明的另一个方面,提供了一种计算机程序产品,其具有在其中记录有计算机程序的计算机可读介质,所述计算机程序用于将至少一个图形对象与一个图像合成,该对象和该图像具有相关的颜色和不透明度分量值,该计算机程序产品包括:

产生至少一个具有相关的不透明度分量值的不透明度通道的计算机程序代码装置;

将所述至少一个对象的颜色和不透明度分量值与所述图像的颜色和不透明度分量值合成的计算机程序代码装置;以及

将所述至少一个对象的所述不透明度分量值与所述至少一个不透明度通道的不透明度分量值合成,以产生一个被改变了的不透明度通道的计算机程序代码装置,从而,该改变后的不透明度通道代表在与所述至少一个对象的所述颜色和不透明度分量合成之后,所述图像中剩余的与所述图像相关的不透明度分量值。

根据本发明的另一个方面,提供了一种计算机程序产品,其具有在其中记录有计算机程序的计算机可读介质,所述计算机程序用于将至少一个图形对象与一个图像合成,该对象和该图像具有相关的颜色和不透明度分量值,该计算机程序产品包括:

产生至少一个具有相关的不透明度分量值的不透明度通道的计算机程序代码装置;

将所述至少一个对象的颜色和不透明度分量值与所述图像的颜色和不透明度分量值合成的计算机程序代码装置;

将所述至少一个对象的所述不透明度分量值与所述至少一个不透明度通道的不透明度分量值合成,以产生一个被改变了的不透明度通道的计算机程序代码装置;以及

使用该改变后的不透明度通道来去除在与所述至少一个对象的所述颜色和不透明度分量合成之后,所述图像中剩余的该图像的颜色和不透明度分量值的计算机程序代码装置。

根据本发明的另一个方面,提供了一种计算机程序产品,其具有在其中记录有计算机程序的计算机可读介质,所述计算机程序用于将组合起来的多个图形对象与一个图像合成,每一个所述对象和该图像具有相关的颜色和不透明度分量值,该计算机程序产品包括:

产生至少一个具有相关的不透明度分量值的不透明度通道的计算机程序代码装置;

将每一个所述对象的颜色和不透明度分量值与所述图像的颜色和不透明度分量值合成的计算机程序代码装置;

将所述每一个所述对象的所述不透明度分量值与所述至少一个不透明度通道的不透明度分量值合成,以产生一个被改变了的不透明度通道的计算机程序代码装置;以及

使用该改变后的不透明度通道来去除在与每一个所述对象的所述颜色和不透明度分量合成之后,所述图像中剩余的该图像的颜色和不透明度分量值的计算机程序代码装置。

还公开了本发明的其它方面。

附图说明

下面结合附图和附录描述本发明的一个或者多个实施例以及现有技术的某些方面。附图中:

图1(a)图示了描绘三个对象所获得的图像;

图1(b)图示了描绘图1(a)的对象期间所涉及的操作;

图2(a)图示了被合成到一个完全不透明的对象上的一个部分不透明的对象;

图2(b)图示了描绘图2(a)的对象期间所涉及的操作;

图3(a)图示了一个对象被合成到另一个对象上;

图3(b)图示了描绘图3(a)的对象期间所涉及的操作;

图4(a)图示了描绘三个对象所获得的图像;

图4(b)图示了描绘图4(a)的对象期间所涉及的操作;

图5(a)图示了描绘三个对象所涉及的操作;

图5(b)图示了从图5(a)的操作所得到的图像;

图6(a)图示了描绘三个对象所涉及的操作;

图6(b)图示了从图6(a)的操作所得到的图像;

图7是一个流程图,图示了根据一个实施例合成一组图形对象的方法;

图8(a)图示了一个部分透明的绿色对象;

图8(b)图示了一个组对象;

图9图示了一个干净的背景图像,根据一个例子,图8(a)和8(b)的对象将要被合成在该背景图像上;

图10图示了将图8(a)的对象合成到图9的背景图像上;

图11图示了图10的背景图像的一个副本和一个附加不透明度通道(extra opacity channel);

图12图示了在将图8(b)的对象合成到图11的背景图像副本上之后的,更新了的背景图像副本和更新了的阿尔法通道(透明度通道);

图13图示了在将图8(b)的另一个对象合成到图12的背景图像副本上之后的,另一个更新了的背景图像副本和更新了的阿尔法通道(透明度通道);

图14图示了在去除背景颜色之后进一步更新的背景图像副本;

图15图示了在将组不透明度应用于图14的更新后的背景图像副本上之后,进一步更新的背景图像副本;

图16图示了在合成了图8(b)的组对象之后,图10的原始背景图像的更新版本;

图17是可以实施所描述的方案的通用计算机的示意性框图;

图18图示了上述每一个合成操作符与多个其它的传统合成操作符一起,每一个的操作符的结果。

具体实施方式

应当注意,背景技术部分所包含的说明以及上面有关现有技术方案的说明涉及对由于其公开和/或使用而构成公开的只是的文件或者设备的讨论。这样的讨论不应被解释为本申请的发明人表示这种文献或者设备以任何方式构成现有技术中公用的一般知识的一部分。

下面结合图7到18描述根据本发明的一个实施例,将一组图形对象合成到背景图像上的方法700(见图7)。该方法700允许将组合起来的多个对象合成到一个背景图像上,以产生好似每一个图像被单独描绘到该背景图像上一样的结果。具体地,该方法700允许在要对作为整体的组合起来的多个对象进行操作时执行这样的合成。

这里所描述的方法700的原理可以普遍地应用于接受图形对象输入和产生最终图像的任何描绘系统。所述最终图像可以用任何合适的格式(例如像素或者描绘命令)来表达。对这样的描绘系统的对象输入可以使用图形用户界面产生,在图形用户界面上,用户能够将多个对象组合起来,以将该组对象作为单个对象(或者组对象)进行处理。这样的一个组对象允许对该组对象执行可以对单个对象执行的任何操作(例如组不透明度或者输入过滤(input filtering))。这样的描绘系统的每一个单独的输入对象包括用来将该对象合成到背景图像上的相关合成操作。

该方法700最好使用通用计算机系统1700来实施,比如图17所示的系统,其中,图7到图18的处理可以实现为软件,比如在计算机系统1700内执行的应用程序。具体地,方法700的步骤由计算机执行的软件中的指令来实现。所述指令可以形成为一个或者多个代码模块,每一个模块用于执行一个或者多个特定任务。所述软件也可以被分为两个单独的部分,其中第一部分执行该方法700,第二部分管理第一部分和用户之间的用户界面。所述软件可以被存储在计算机可读介质中,包括例如下面所描述的存储设备。所述软件从计算机可读介质被装入计算机,然后由该计算机执行。在上面记录了这样的软件或者计算机程序的计算机可读介质是一种计算机程序产品。计算机程序产品在计算机中的使用更可取地实现了用于实现该方法700的有利的设备。

计算机系统1700由计算机模块1701、输入设备比如键盘1702和鼠标1703、输出设备(包括打印机1715、显示设备1714和扬声器1717)构成。调制解调器(Modem)收发设备1716由计算机模块1701用来与通信网络1720进行通信。所述通信网络例如可以通过电话线1721或者其它功能介质来连接。调制解调器1716可以用来实现对因特网、其它网络系统比如局域网(LAN)和广域网(WAN)的访问,并可以在某些实现中被接合到计算机模块1701中。

计算机模块1701一般包括至少一个处理器单元1705和一个存储器单元1706(例如由半导体随机存取存储器(RAM)和只读存储器(ROM)形成)。该模块1701还包括许多输入输出(I/O)接口,包括连接到视频显示器1714和扬声器1717的音频-视频接口1707、用于键盘1702和鼠标1703以及可选的操纵杆(未图示)的输入输出(I/O)接口1713,以及用于调制解调器1716和打印机1715的接口1708。在某些实现中,调制解调器1716可以被接合在计算机模块1701中,例如在接口1708内。提供了存储设备1709,其一般包括硬盘驱动器1710和软盘驱动器1711。也可以使用磁带驱动器(未图示)。一般提供CD-ROM驱动器1712作为非易失性数据源。计算机模块1701的部件1705到1713一般通过互连总线1704通信,使得计算机系统1700以本领域普通技术人员所知的传统模式工作。可以实施所描述的方案的计算机的例子包括IBM-PC及其兼容机、Sun Sparcstations或者由之发展出来的类似计算机系统。

一般,应用程序驻留在硬盘驱动器1710上,在其执行过程中由处理器1705读取和控制。从网络1720取出的任何数据以及程序的中间存储可以使用半导体存储器1706(可能与硬盘驱动器1710合作)来完成。在某些情况下,可以将应用程序编码在CD-ROM或者软盘上提供给用户,并通过相应的驱动器1712或者1711读取,或者可以由用户通过调制解调器设备1716从网络1720读取。另外,软件还可以从其它计算机可读介质被装入计算机系统1700。这里使用的术语“计算机可读介质”指的是参与向计算机系统1700提供指令和/或数据以进行执行和/或处理的任何存储或者传输介质。存储介质的例子包括软盘、磁带、CD-ROM、硬盘驱动器、ROM或者集成电路、磁光盘、计算机可读卡比如PCMCIA卡等,不管这些设备是在计算机模块1701的外部还是内部。传输介质的例子包括无线电或者红外传输信道以及到另一个计算机或者联网设备的网络连接,以及包括电子邮件传输和记录在网址等上的信息的因特网或者内联网。

合成一组图形对象的方法700或者可以被实现在专用硬件中,所述专用硬件比如是执行方法700的功能或者子功能的一个或者多个集成电路。这样的专用硬件可以包括图形处理器、数字信号处理器或者一个或者多个微处理器以及相关的存储器。

为便于说明,下面按照自左乘透明度(自左乘阿尔法,premultiplied alpha)(也就是不透明度)来总体描述合成操作,除非另有指明。许多图形描绘系统存储像素颜色分量值作为自左乘透明度值,以降低合成操作的复杂性。例如,在红、绿、蓝、透明度(Alpha,阿尔法)(RGBA)色彩环境中,为了将50%不透明红的值表达为自左乘RGBA,所存储的颜色分量值为R=0.5(也就是100%红×50%不透明度),G=O,B=O,A=0.5。

下面的表1图示了在整个说明书中使用的表示合成操作的项的定义。如表1所示,“S”表示存储在源缓冲器中的颜色分量值。“D”用来指存储在目标缓冲器中的颜色分量值。

表1

  项  定义  Sc  非自左乘源颜色分量  Sca  自左乘源颜色分量  Sra Sga Sba  分别是红、绿、蓝的自左乘源颜色分量  Sa  源不透明度分量  Dc  非自左乘目标颜色分量  Dca  自左乘目标颜色分量  Dra,Dga,Dba  分别是红、绿、蓝的自左乘目标颜色分量  Da  目标不透明度分量  Da(d)  组缓冲区的目标不透明度分量,包含该组缓冲区中背  景通道的不透明度  D<n>  目标缓冲区<n>,其中,n=0表示背景,n=1表示顶  层对象中的组,n=2表示嵌套组  D′  在合成步骤之后的目标缓冲区(也就是更新缓冲区)  的结果。

下面的等式(1)和(2)用来确定将源像素值与目标像素值合成的结果。一个源像素值可以与单个对象相关联,或者与被表达为单个对象的一组对象相关联。对于每一个像素,对于每一个颜色分量(例如R、G、B)和阿尔法通道(透明度通道),使用等式(1)和(2)确定一个值。取决于要执行的合成操作,在进行描绘之前,针对自左乘透明度值解等式(1)和(2)。

Dca’=f(Sc,Dc)·Sa·Da+Y·Sca·(1-Da)+Z·Dca·(1-Sa)      (1)

Da’=X·Sa·Da+Y·Sa·(1-Da)+Z·Da·(1-Sa)                 (2)

其中:

X表示源像素值的不透明度和目标像素值的相切;

Y表示源像素值和目标像素值的反转的相切;

Z表示源像素值的反转和目标像素值的相切;

F()表示用来执行操作的特定合成操作符所定义的,源和目标颜色分量值的函数(见下面的表2)。

表2对X、Y、Z和f()定义了一些合成操作。本领域的普通技术人员会理解,可以以类似的方式定义相关领域中已知的其它合成操作。表2还包括了一个“颜色(Dca′)”列,表示用于对特定合成操作(例如源像素OVER目标像素)确定目标颜色分量值的等式。表2还包括一个Da′列,表示用于确定目标不透明度分量值的等式。表2还包括一个Da(d)′列,表示用于确定组缓冲区的目标不透明度分量值(包含该组缓冲区中的背景通道的不透明度)的等式。

表2

  操作  f(Sc,Dc)X  Y  Z  颜色(Dca′)  不透明性(Da’)  Da(d)  Clear(空,  清零)  00   0      0  0  0  0  Src  Sc1   1      0  Sc·Sa·Da  +Sca·(1-Da)  =Sca  Sa·Da  +Sa·(1-Da)  =Sa  0  Dst  Dc1   0      1  Dc·Sa·Da  +Dca·(1-Sa)  =Dca  Sa·Da  +Da·(1-Sa)  =Da  Da(d)·(1-Sa)  OVER  Sc1   1      1  Sc·Sa·Da  +Sca·(1-Da)  +Dca·(1-Sa)  =Sca+Dca·(1-Sa)  Sa·Da  +Sa·(1-Da)  +Da·(1-Sa)  =Sa+Da-Sa·Da  Da(d)·(1-Sa)  ROVER  Dc1   1      1  Dc·Sa·Da  +Sca·(1-Da)  +Dca·(1-Sa)  =Dca+Sca·(1-Da)  Sa·Da  +Sa·(1-Da)  +Da·(1-Sa)  =Sa+Da-Sa·Da  Da(d)·(1-Sa)  IN  Sc1   0      0  Sc·Sa·Da  Sa·Da  0  RIN  Dc1   0      0  Dc·Sa·Da  Sa·Da  0  OUT  00   1      0  Sca·(1-Da)  Sa·(1-Da)  0  ROUT  00   0      1  Dca·(1-Sa)  Da·(1-Sa)  Da(d)·(1-Sa)  ATOP  Sc1   0      1  Sc·Sa·Da  +Dca·(1-Sa)  =Sca·Da+Dca·(1-Sa)  Sa·Da  +Da·(1-Sa)  =Da  Da(d)·(1-Sa)  RATOP  Dc1   1      0  Dc·Sa·Da  +Sca·(1-Da)  =Dca·Sa+Sca·(1-Da)  Sa·Da  +Sa·(1-Da)  =Sa  0  XOR  00   1      1  Sca·(1-Da)  +Dca·(1-Sa)  =Sca·(1-Da)+Dca·(1-Sa)  Sa·(1-Da)  +Da·(1-Sa)  =Sa+Da-2·Sa·Da  Da(d)·(1-Sa)  Plus(加)  Sc+Dc1   1      1  (Sc+Dc)·Sa·Da  Sca·(1-Da)  +Dca·(1-Sa)  =Sca+Dca  Sa·Da  Sa·(1-Da)  +Da·(1-Da)  =Sa+Da-Sa·Da  Da(d)·(1-Sa)  Multiply  (乘)  Sc·Dc1   1      1  Sc·Dc·Sa·Da  Sca·(1-Da)  +Dca·(1-Sa)  =Sca·Dca+Sca·(1-Da)+Dca·(1-Sa)  Sa·Da  Sa·(1-Da)  +Da·(1-Sa)  =Sa+Da-Sa·Da  Da(d)·(1-Sa)

下面结合图7描述将一组图形对象(以下称为“组对象”)合成到一个背景图像上的方法700。下面还要结合示于图8(a)到16的例子进一步描述该方法700。

在执行该方法700之前,通过合成一个或者多个图形对象来产生背景图像(D0)。该背景图像(D0)包括像素值背景颜色分量(例如RGB颜色分量)和不透明度(也就是阿尔法通道(透明度通道))。类似地,组对象中的每一个对象包括颜色分量和不透明度。

该方法700最好被实现为驻留于存储器1706中并由处理器1705控制其执行的软件。该方法700最好使用位图描绘,其中,每一个对象被完全描绘到目标位图中,一次一个。或者,根据所描述的实施例,可以使用其它描绘技术,包括扫描线描绘(也就是一次一个地生产完整的单扫描线)或者像素描绘(也就是一次一个地生成每一个像素的最终值)。

该方法始于步骤701,在这里处理器1705复制背景图像(D0),以产生一个背景图像副本(D1)。同样在步骤701,处理器1705在存储器1706中存储原始背景图像(D0),以便以后与组对象合成。在该方法700中,背景图像副本(D1)用来生成所述组对象中的每一个对象。一旦在(D1)中生成了组对象,则将该组对象合成回背景图像(D0)上。

该方法700继续进行下一个步骤702,在这里,处理器1705产生阿尔法通道(透明度通道)(Da(d)),用于在将组对象合成到背景图像(D1)上的操作期间,存储背景图像副本(D1)中剩余的背景图像(D0)的不透明度值。所述背景图像副本(D1)最初包含与背景图像(D0)相同的值。另外,将阿尔法通道(透明度通道)(Da(d))初始设置为完全不透明。

该方法700的接下来的步骤703、704、705和706将组对象的每一个对象合成到背景图像副本(D1)和阿尔法通道(透明度通道)(Da(d))中。在步骤703,如果处理器1705判定组对象的每一个对象已经被描绘到背景图像副本(D1)中,则该方法700前进到步骤707、否则该方法700前进到步骤704,在这里,与组对象中的当前对象相关的颜色分量值被合成到所述背景图像副本(D1)中。在步骤704,取决于被执行的合成操作,当前对象的颜色分量的合成使用示于表2的颜色栏Dca’的式子。

在下一个步骤705,处理器1705将组对象的当前对象的阿尔法通道(透明度通道)合成到与所述背景图像副本(D1)相关的阿尔法通道(透明度通道)上(未图示)。取决于所使用的合成操作,步骤705的组对象中的当前对象的阿尔法通道(透明度通道)的合成使用表2的不透明度栏(Da’)所示的式子。

该方法700继续下一个步骤706,在这里,处理器1705将组对象中的当前对象的阿尔法通道(透明度通道)合成到在步骤702产生的阿尔法通道(透明度通道)Da(d)’上。取决于所使用的合成操作,步骤706中阿尔法通道(透明度通道)的合成使用表2的Da(d)’栏所示的式子。例如,对于合成操作″ATOP″(置顶于),函数f(Sc,Dc)=Sc,X=1,Y=0且Z=1,如表2所示。因此Dca1’=Sca·Da1+Dca1·(1-Sa),Da1’=Da1,且Da1(d)’=Da1(d)·(1-Sa)。在步骤706之后,方法700返回到步骤703。

一旦组对象中的每一个对象都已被描绘到背景图像副本(D1)中,则方法700前进到步骤707。在步骤707,如果组对象具有一个相关的组不透明度、过滤效果或者任何其它操作作用于作为整体的组对象上,则方法700前进到步骤708。否则该方法700前进到步骤712,在这里,处理器1705用包括组对象的背景图像副本(D1)取代背景图像(D0),该方法700结束。

在步骤708,处理器1705在将组不透明度或者效果例如作用于在背景图像副本(D1)中描绘的组对象之前,从背景图像副本(D1)中去除在背景图像副本(D1)中剩下的任何背景颜色。为了执行步骤708,处理器1705对背景图像副本(D1)的每一个像素确定更新的自左乘颜色分量值(Dca1’)以及更新的目标不透明度分量值(Da1’)。处理器1705根据以下等式确定值(Dca1’)和(Da1’):

Dca1’=Dca1-Dca0·Da1(d)               (3)

Da1’=Da1-Da0·Da1(d)                  (4)

该方法700在下一个步骤709继续。在该步骤,处理器1705反转(Da1(d)’)。步骤709的结果代表在执行步骤703到706期间从背景图像副本(D1)移除的原始背景图像(D0)的量。

Da1(d)’=1-Da1(d)                  (5)

在下一个步骤710,处理器1705将组效果(例如组不透明度或者过滤效果)应用于所述组对象,以产生完成的组对象。该方法700在下一个步骤711结束,在该步骤,处理器1705将完成的组对象合成到原始背景图像(D0)上。在步骤711,根据下述等式(6)和(7)计算原始背景图像(D0)的颜色和不透明度分量值:

Dca0’=f(Dc1,Dc0)·Da1·Da0+Y·Dca1·(1-Da0)+Z·Dca0·(1-Da1(d))   (6)

Da0’=X·Da1·Da0+Y·Da1·(1-Da0)+Z·Da0·(1-Da1(d))                (7)

下面用图8(a)到16的例子进一步描述该方法700。

图8(a)图示了一个100%绿色的对象802,其为60%不透明。因此,该绿色对象802的颜色和不透明度分量值为R=O,G=0.6,B=0以及A=0.6。图8(b)图示了一个组对象805。该组对象805包含两个对象803和804。第一对象803为红色、80%不透明。因此该红色对象803的颜色和不透明度分量值为R=0.8,G=O,B=0和A=0.8。异或(XOR)合成操作与该红色对象803相关。因此,该红色对象803将使用XOR合成操作被合成到任何背景图像上。

组对象805的第二对象804是紫色、70%不透明。因此该紫色对象804的颜色和不透明度分量值是R=0.7,G=O,B=0.7且A=0.7。″ROVER″(下叠)合成操作与该对象804相关。因此,该紫色对象804将使用ROVER合成操作被合成到任何背景图像上。组对象805是50%不透明,OVER(上叠)合成操作与该组对象相关。因此,该组对象805将使用OVER合成操作被合成到任何背景图像上。

图9图示了一个空的(也就是Dca0′=0且Da0 ′=0)背景图像(D0)901,根据该例子,将使用位图描绘在该背景图像上复合对象802和组对象805。同样,根据该例子,也可以使用其它的描绘技术,包括例如扫描线描绘或者像素描绘。

在该例子中,最初将对象802合成到背景图像(D0)上,形成更新的背景图像(D0’)1001,如图10所示。使用与图像802相关的合成操作(也就是OVER)将该对象802合成到背景图像(D0)上。

在该方法700的步骤701和702,对背景图像(D0)1001复制一个背景图像副本(D1)1101,如图11所示。背景图像(D0’)1001可以被存储在存储器1706中以便后面用组对象805进行合成。与在步骤702一样,也产生一个如图11所示的阿尔法通道(透明度通道)Da(d)1103,用于存储在将组对象(也就是对象803和804)合成到背景图像(D1)1101上之后,背景图像副本(D1)1101中剩余的背景图像(D0)901的不透明度值。该阿尔法通道(透明度通道)Da(d)最初被设置为代表完全不透明的对象(也就是Da(d)=1)。对于对象802形成的区域1104,如图11所示,在建立背景图像副本(D1)1101之后的更新目标值以及阿尔法通道(透明度通道)(Da(d))1103列表如下:

(i)Dra1’=Dra0=0

(ii)Dga1’=Dga0=0.6

(iii)Dba1’=Dba0=0

(iv)Da1’=Da0=0.6

(v)Da1(d)’=1

图12图示了与在该方法700的步骤703到706一样,在将对象803合成到包括对象802的背景图像副本(D1)1101上之后的更新的背景图像副本(D1’)1201。图12还图示了在合成了对象803之后更新的阿尔法通道(透明度通道)(Da(d)’)1203。使用XOR合成操作将该对象803合成到背景图像副本(D1)1101上。这样,根据表2,f(SC,DC)=0,X=0,Y=1且Z=1。另外,对于XOR合成操作,关于颜色Dca1’、不透明度Da1’和Da1(d)’的等式如下:

(i)Dca1’=Sca·(1-Da1)+Dca1·(1-Sa)

(ii)Da1’=Sa·(1-Da1)+Da1·(1-Sa)

(iii)Da1(d)’=Da1(d)·(1-Sa)

在将对象803合成到背景图像副本(D1)1101上之后,如图12所示的对象802和803的重叠区1204的更新目标值如下:

(i)Dra1’=Sra·(1-Da1)+Dra1·(1-Sa)=0.8·(1-0.6)+0·(1-0.8)=0.32

(ii)Dga1’=Sga·(1-Da1)+Dga1·(1-Sa)=0·(1-0.6)+0.6·(1-0.8)=0.12

(iii)Dba1’=Sba·(1-Da1)+Dba1·(1-Sa)=0·(1-0.6)+0·(1-0.8)=0

(iv)Da1’=Sca·(1-Da1)+Da1·(1-Sa)=0.8·(1-0.6)+0.6·(1-0.8)=0.44

(v)Da1(d)’=Da1(d)·(1-Sa)=1·(1-0.8)=0.2

图13图示了与该方法700的步骤703到706一样,在将对象804合成到前面更新后的背景图像副本(D1’)1201上之后,更新后的背景图像副本(D1’)1301。图13还图示了在合成了对象804之后更新的阿尔法通道(透明度通道)(Da(d)’)1303。使用ROVER合成操作将该对象804合成到前面更新的背景图像(D1’)1201上。这样,根据表2,f(SC,DC)=Dc,X=1,Y=1且Z=1。另外,对于ROVER合成操作,关于颜色Dca1’、不透明度Da1’和Da1(d)’的等式如下:

(i)Dca1’=Dca1·Sa+Sca·(1-Da1)+Dca1·(1-Sa)=Dca1+Sca·(1-Da1)

(ii)Da1’=Da1·Sa+Sa·(1-Da1)+Da1·(1-Sa)=Da1+Sa·(1-Da1)

(iii)Da1(d)’=Da1(d)·(1-Sa)

在将对象804合成到前面更新了的背景图像副本(D1’)1201上之后,如图13所示的对象802和803的重叠区1304的更新目标值如下:

(i)Dra1’=Dra1+Sra·(1-Da1)=0.32+0.7·(1-0.44)=0.712

(ii)Dga1’=Dga1+Sga·(1-Da1)=0.12+0·(1-0.44)=0.12

(iii)Dba1’=Dba1+Sba·(1-Da1)=0+0.7·(1-0.44)=0.392

(iv)Da1’=Da1+Sa·(1-Da1)=0.44+0.7·(1-0.44)=0.832

(v)Da1(d)’=Da1(d)·(1-Sa)=0.2·(1-0.7)=0.06

图14图示了与在步骤708一样,在将归因于前面更新的背景图像副本(D1’)1301的任何剩余颜色去除,并如在该方法700的步骤709一样反转了Da1(d)的结果之后,更新的背景图像副本(D1’)1401。如上所述,为了产生更新的背景图像(D1’)1401,处理器1705对于更新的背景图像副本(D1’)1401的每一个像素,确定更新的自左乘颜色分量值(Dca1’)以及更新的目标不透明度分量值(Da1’)。图14还图示了在反转步骤709之后更新的阿尔法通道(透明度通道)(Da(d)’)1402。这样,对于步骤708的操作,颜色Dca1’、不透明度Da1’和Da1(d)’的等式如下:

(i)Dca1’=Dca1-Dca0·Da1(d)

(ii)Da1’=Da1-Da0·Da1(d)

(iii)Da1(d)=1-Da1(d)

在对前面更新的背景图像副本(D1’)1301进行步骤708和709的操作之后,如图14所示的重叠区域1403的更新目标值如下:

(i)Dra1’=Dra1-Dra0·Da1(d)=0.712-0·0.06=0.712

(ii)Dga1’=Dga1-Dga0·Da1(d)=0.12-0.6·0.06=0.084

(iii)Dba1’=Dba1-Dba0·Da1(d)=0.392-0·0.06=0.392

(iv)Da1’=Da1-Da0·Da1(d)=0.832-0.6·0.06=0.796

(v)Da1(d)’=1-Da1(d)=1-0.06=0.94

图15图示了与该方法700的步骤710一样,在对前面更新的背景图像副本(D1’)1401和前面更新的透明通道(Da(d)’)1402应用组不透明度之后,更新的背景图像副本(D1’)1501。对于步骤710的操作,颜色Dca’、不透明度Da1’和Da1(d)’的等式如下:

(i)Dca1’=Dca1·0.5

(ii)Da1’=Da1·0.5

(iii)Da1(d)=Da1(d)·0.5

在对前面更新的背景图像副本(D1’)1401和不透明度(Da(d)’)1402进行步骤710的操作之后,如图15所示的重叠区域1503的更新目标值如下:

(i)Dra1’=0.712·0.5=0.356

(ii)Dga1’=0.084·0.5=0.042

(iii)Dba1’=0.392·0.5=0.196

(iv)Da1’=0.796·0.5=0.398

(v)Da1(d)’=0.94·0.5=0.47

图16图示了与该方法700的步骤711一样,在将图15的前面更新的背景图像副本(D1’)1501的组对象805合成到背景图像副本(D0’)1001上之后,更新后的原始背景图像(D0’)1601。使用OVER合成操作将该组对象805合成到背景图像(D0’)1001上。这样,根据表2,f(SC,DC)=Sc,X=1,Y=1且Z=1。另外,对于OVER合成操作,关于颜色Dca1’、不透明度Da1’的等式如下:

(i)Dca1’=Sca·Da1+Sca·(1-Da1)+Dca1·(1-Da1(d))=Sca+Dca1·(1-Da1(d))

(ii)Da1’=Sa·Da1+Sa·(1-Da1)+Da1·(1-Da1(d))=Sa+Da1·(1-Da1(d))

在对背景图像(D0’)1001进行步骤711的操作之后,如图16所示的重叠区域1602的更新目标值如下:

(i)Dra1’=Sra+Dra1·(1-Da1(d))=0.356+0·(1-0.47)=0.356

(ii)Dga1’=Sga+Dga1·(1-Da1(d))=0.042+0.6·(1-0.47)=0.36

(iii)Dba1’=Sba+Dba1·(1-Da1(d))=0.196+0·(1-0.47)=0.196

(iv)Da1’=Sa+Da1·(1-Da1(d))=0.398+0.6·(1-0.47)=0.716

如上所述,该方法700的原理一般地适用于任何接受图形对象输入、产生最终图像的描绘系统。所述最终图像可以被表示为任何合适的格式(例如以像素表示或者用描绘命令表示)。这样的描绘系统的输入对象可以使用图形用户界面产生,在图像用户界面上,用户能够将多个对象组合在一起,以便将该组对象作为单个对象(或者说组对象)进行处理。这样的组对象允许对该组对象执行任何可以对单个对象执行的操作(例如组不透明度或者输入过滤)。这样的描绘系统的每一个单独的输入对象包括相关的合成操作,该合成操作用来将该对象合成到背景图像上。

如上所述,该方法700使用等式(1)和(2)来确定将源像素值与目标像素值合成的结果。一个源像素值可以与单个输入对象或者被表示为单个对象的一组对象相关联。对于每一个像素,使用等式(1)和(2)对每一个颜色分量(例如R、G、B)和阿尔法通道(透明度通道)确定一个值。所述源颜色分量值被存储在一个源缓冲区中,所述目标颜色分量值被存储在一个目标缓冲区中。

在该方法700的一种实现中,所述源和目标缓冲区可以是大小和位置基本上相同的图像位图的形式。多个这样的图像位图可以层叠起来形成一个“图像文件”,其中该图像文件的每一层包括该层中每一个像素的位图信息。在这样的实现中,可以从源图像文件的一个或者多个层访问如上所述的源颜色分量值“S”,并且,组合源颜色分量值而得到的如上所述的目标颜色分量值“D”可以被输出到另一个图像文件或者输出到输出设备。可以在源图像文件中规定用来组合源图像文件的每一层的源像素的操作。这样的源图像文件也可以规定图像层的分组,其中,源图像文件的一个子集首先被合成起来,产生一个合成值,随后将该合成值根据上述方法700与源图像文件中的其它层组合起来。

作为上面所述的实现方式的一个例子,可以用描绘系统将输入到描绘系统的对象的矢量图形表达转换为图像文件形式的基于像素的对象。所述图像文件然后可以作为一个对象被包含在另一个矢量图形文件中,然后由描绘系统根据该方法700进行处理,随后可以将产生的目标图像文件转换回基于矢量的图形对象以进行描绘。

上述优选方法包括特定的控制流。所述优选方法有许多其它的变形使用不同的控制流,这仍然在本发明的实质范围内。另外,所述优选方法的一个或者多个步骤可以并行执行而不是顺序执行。

前面只是描述了本发明的一些实施例,对这些实施例,可以进行修改和/或变化而不超出本发明的实质范围。这些实施例只是说明性的而不是限制性的。例如,可以使用各种技术来根据上述实施例来执行描绘操作。在使用位图描绘的情况下,每一个对象被一次一个完全绘入位图中。在对背景图像进行了拷贝的情况下,或者需要额外的存储空间来存储像素的情况下,可以使用缓冲区。或者,可以根据上述实施例使用其它描绘技术,包括扫描线描绘(一次一个产生完整的单扫描线)或者像素描绘(一次一个产生每一个像素的最终值)。

在本说明书的上下文中,“包括”的意思是“主要包括但不一定限于”,或者是“具有”,或者是“包含”,而不是“仅由......构成”。该词的各种变化形式也具有一样的含义。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号