具有最大页面覆盖率的图形组件布局的制作方法

文档序号:7679336阅读:218来源:国知局
专利名称:具有最大页面覆盖率的图形组件布局的制作方法
具有最大页面覆盖率的图形组件布局背景技术鉴于数字照相机和家用计算机的普及,用户现在频繁地创建由布置在单个页面上的多个图像构成的照片拼贴(collage)。这些照片拼贴 通常由各种尺寸的图像构成。而且,给定的照片拼贴可包括两个或更多 个图像,这些图像是有关的并且希望维持这些图像的特定次序(例如, 来自视频的渐进地显示踢入球门内的足球的几个关键帧图像)。计算机软件当前可用于在页面上排列图像,比如相片、视频帧、图形图像和文本框。这种软件一般形成通常所谓的相册,包括具有由用户 选择的并以各种方式排列的若干图像的一个或多个页面。相册页面在该 术语用于本文时指的是具有定位在其上的多个图像的固定尺寸的页面。 页面可以是打印页面或者是比如在计算机屏幕、电视或投影屏幕上的页 面表示。用于相册布局的大多数常规方法依靠模板作为用于在页面上分布 图像的手段。然而,可打印内容的可能的形式因数(form factor)的 数量正在增大(例如,全景、剪切的照片、具有可变数量的关键帧的视 频,等等)。随着这种趋势的延续,变得难以提供下述模板集其充分 支持不同形状图像的所有可能的组合以及支持图像在页面上的排列的 所有可能的用户偏好。因而,已经提出了自动化软件程序,其似乎无需使用预先形成的模 板就可以定位图^象。 一个示例是可/人L腦apix获得的專t件包Fotofusion 的"自动拼贴"功能。当图像被定位到页面上时,不管有没有使用预先形成的模板,通常 希望的是最小化页面上未使用的空间量。在Fotofusion软件中,这似乎是通过首先给每个照片指派页面的 区域,其中这些区域共同覆盖整个页面,然后剪切每个相片以使其符合 所分派空间的具体空间要求来实现的。然而,由该软件确定的区域的初 始集似乎是任意选择的。这通常可能导致相当大的图像剪切-造成整个 图像质量恶化、相当大的内容损失和一般用户的不满意。因此,希望的是提供一种用于以最大化图像所覆盖的页面量同时最小化被剪除掉的相片内容量的方式把图像放置到页面上的方法。


图1提供用于生成图像布局的过程10的一个实施例的大体概述。图2提供用于生成图像布局的过程100的一个实施例的更详细概述。
图3提供由单个图形元素组成的图形组件(graphic assembly)的示例。
图4提供由多个图形元素组成的图形组件的示例。图5提供用于图3和4的图形组件的示例性初级(preliminary)页面布局。
图6提供与图5的初级页面布局对应的二叉树。图7提供用于由图3和4的图形组件所表示的图形元素的示例性初级页面布局。
图8提供与图7的初级页面布局对应的完全二叉树。图9是砖块(brick)风格布局的示例。图IO是严才各面积(strict area)风才各布局的示例。图11提供用于表征当前节点的包围盒(boimding box)的示例性递归过程。
图12提供用于把空间区域分配给根节点的示例性方法。
图1 3提供用于把空间区域分派给节点的孩子的示例性方法。
图14提供用于对分派给当前节点的空间区域进行压缩的示例性方法。
图15提供用于为表示水平划分(division)的节点的左手孩子和
右手孩子计算空间区域的高度和宽度的示例'性方法。
图16提供用于为表示垂直划分的节点的左手孩子和右手孩子计算空间区域的高度和宽度的示例'性方法。
图17提供用于计算调整后的图形元素的尺度的示例性方法。
具体实施例方式
本公开提供用于在页面上自动放置多个图像以便最大化页面覆盖率并最小化内容去除的方法和系统。在优选实施例的以下详细描述中,参照附图,这些附图形成本文的一部分并举例示出了其中可实践本发明的具体实施例。要理解,在不偏
离本发明的范围的情况下,可利用其他实施例并且可进行结构或逻辑变化。因此,以下详细描述不应以限制性意义来理解。
本文关于图形组件(GA)和图形元素(GE)描述了该发明。如本文所使用的,图形元素是单个图像,比如单个照片、单个文本框、 一个剪贴图(clip-art)、来自视频的关键帧,等等。如本文所使用的,图形组件是一个或多个图形元素的内聚(cohes i ve)群或集合。图形组件可包括图形元素的任意子集或可包括图形元素的序列。包括图形元素的序列的图形组件的示例是来自视频的关键帧的集合,其中每个关键帧是图像单元。具有 一个以上图形元素的图形组件能够以 一种以上方式进行呈现。然而,可能呈现的数量往往是有限的。图形元素的序列一般布置成行和列以保持图形元素的顺序。例如,包含6个关键帧的序列的图形组件具有4种可能的呈现2 x 3阵列,3x2阵列,1x6阵列和6 x 1阵列。仅有一个图形元素的图形组件(比如单个相片)是仅有一种呈现的"退化的"图形组件。
为了本公开的目的,图形元素的纵横比被定义为图形元素的高度除以图形元素的宽度。
图1提供用于创建图像布局的过程10的一个实施例的大体概述。待使用的数字内容集合由用户指定,并在步骤11输入。该输入集合可包含相片、视频、剪贴图、文本框或其他图像。该系统可从各种数据源取得该输入集合,所述数据源包含用户计算机上的文件夹、数字照相机存储卡、在线照片共享网站、或者其他类似的数据源。该输入集合例如可以是.pdf、 .jpeg、 . tif或其他适当的文件才各式。
在步骤12,用户输入被接收。用户输入可包括与图像的最终布局有关的众多不同的用户偏好,包括但不限于最大剪切因数(croppingfactor )、图像间的期望间距以及要在其上放置最终布局的页面的尺寸。最大剪切因数(CF)确定能够由该过程所剪切的图像的最大量。要理解,这些偏好可由系统设计者、制造商或消费者提供。因而,在该上下文中,"用户"可意指利用本发明的更大的系统、或者设定配置参数的系统设计者、或者通过用户接口控件来利用本发明的终端用户或消费者,其中所述配置参数支配本发明将如何在产品中工作。在步骤13,确定初级布局。该初级布局确定图形组件在页面上的相对放置并且可进一 步提供初级空间区域以供每个图形元素占据。例如,
给定的布局可由下述两个图形组件组成第一图形组件(GA),包括两个图形元素(GEa和GEb);和第二图形组件(GA,),仅包括单个图形元素(GEe)。该初级布局可确定GA要被放置到GA,的左边而GEa要放置到GEb上方。然而,并不要求这种初级布局给出每个图形元素在页面上的具体最终位置和面积(area)。初级布局的选择可考虑反映通过本
发明将被剪除掉的相片内容的量的准则。
在步骤14,完整的页面布局的最终区(final area )被确定。在这个步骤中,如果在给定任何间距和/或面积要求的条件下所有图像被放置得尽可能紧密,则该完整的页面布局可被看作是由这些图像创建的印迹(footprint)。才艮据一个实施例,该过程确定初级布局的印迹在该页面上是否合适(即,该印迹的平面形状(aspect )是否与页面的平面形状相互关:f关)。如果它合适,则最终面积(final area);故确定为页面的面积。如果它不合适,则初级布局印迹让页面的某个部分为空白,这取决于该印迹是在X方向上不足还是在Y方向上不足。为了对此进行补偿,不足的维度被延伸到高达最大剪切因数的倍数。根据允许该过程剪切的图像量,这种补偿可能导致或可能不导致完全填充的页面,但不管怎样,这将导致改进的页面覆盖率。
在步骤15,依照延伸的最终区来确定每个图形元素的最终区。沿来自步骤14的不足维度的方向延伸分配给每个图形元素的空间区域。该延伸的幅度取决于步骤14中的ASPECT —FACT0R。
一般而言,在步骤15扩展图形元素区域后,它们不再具有与图形元素本身相同的形状。在步骤16,每个图形元素被剪切并居中以适于其分派的最终面积。
图2提供用于生成图像布局的过程100的更详细概述。在步骤101,输入数字内容集合。在步骤102,获取第一切片(slicing)结构或等价地其叶子与图形组件呈现相关联的二叉树。参照图3-8,页面(201,204 )被一个或多个水平和垂直分界线202划分以形成多个子区,其中每个子区与图形组件呈现(在201中)相关联或者更具体地与待放置到页面上的图形元素(在204中)相关联。当该术语用于本文时,页面指的是具有固定尺寸的区。页面可以是打印页面或者比如在计算机屏幕、电视或投影屏幕等上的页面的表示。水平线和垂直线定义了页面的"切片结构"。当相关图形组件被放置在其各自的子区中时,创建了 "布局"。
该切片结构和对应的布局能够用二叉树210来表示,如图6和8所示,其中树的分量(component)分别对应于页面2 01和2 04的特征。树中具有从它们发出的分支212的点被称为"内部节点"而树中没有从它们发出的分支的点被称为"端节点"或可选地称为树210的"叶子"。内部节点和端节点可共同地或单独地简称为"节点"。
当页面一皮顺序地划分时,每个内部节点表示页面上的水平或垂直分界线或"切割"。在所描绘的实施例中,水平分界线用大H描绘而垂直分界线用大V描绘。每个端节点与子区和对应的图形组件相关联。图5示出了被划分成两个子区的页面201,表示对原始页面所做的单次划分。图6是具有两个端节点GA1和GA2的树210。
如图3所示,GA 1由单个图形元素GE1构成。如图4可见,GA2由六个图形元素GE2-GE7构成。应当明白,因为GA1由单个图形元素GE1构成,所以对于GA1而言只存在一种可能的呈现。然而,GA2由六个图形元素构成,因而多种可能的呈现是可能的。例如,这六个图像能以1x6, 6x1, 2 x 3或3 x 2的配置来呈现。为了便于解释,仅描绘一种可能的呈现。然而,要理解,切片结构和对应的二叉树能被创建用于每种可能的呈现。而且,这六个图形元素可能需要或可能不需要以特定次序来呈现。为了便于描述,将假设图形组件内图形元素的呈现次序已由用户或一些其他装置识别。
回到图2,在步骤103,把二叉树转换成完全二叉树(CBT),其中该树的每个叶子与单个图形元素相关联。在图7和8中,图5所示的基于图形组件的布局及其对应的二叉树(图6)已被转换成基于图形元素的布局(图7)及对应的完全二叉树214 (图8)。因而,二叉树214是完全二叉树,其中GA2已被转换成包括由GA2代表的所有图形元素的子树。如本文所用的,"子树"指的是从节点发出的树的一部分。因而,二叉树214是具有七个端节点或叶子GE1、 GE2、 GE3、 GE4、 GE5、 GE6和GE7的完全二叉树。二叉树214进一步包含五个内部节点VI、 Hl、 V2、H2、 V3和V4。每个内部节点表示布局中一个或多个图形元素之间的水平(H)或垂直(V)的划分。所有其他节点从其发出的节点在本文中被称为"根节点"。在图6和图8中,内部节点V和V1分别表示根节点。再次回到图2,在步骤104确定每个图形元素的初级区
(prel iminary area )。该初级区确定如何将图形元素相对彼此地放置到页面上。初级区可通过建立和比较各种切片结构来确定。能够根据用户的希望和呈现的图像来建立不同的切片结构。根据一个实施例,可建立多个切片结构并选择最优的切片结构。例如,在2005年5月12日提交的共同待决的美国专利申请号11/127, 326和2005年5月13日提交的美国专利申请号1 1/1 28,543中描述了用于给各种切片结构打分以便选择最优切片结构的方法,每个上述专利申请在此通过引用方式整体地-陂并入用于各种目的。
通过来自用户的输入,可完全地或部分地确定初级面积
(preliminary area )。才艮据一个实施例,用户可指定一些或所有图像单元在页面上的大体布局。例如,用户可指定GE1应当位于GA2的左边。附加地或可选地,用户可指定是否任何图像要受到任何面积要求。面积要求可采用相对面积要求的形式(例如,GE1必需显示为GE2的两倍大)。'326和'543申请描述了用于在页面上高效放置图像的方法,其具有最大多样性的布局可能性而同时允许用户指定图像的特定子集应当被一起定位在内聚群中和/或指定相邻图像之间的精确间距。描述了两种不同类型的布局,即"砖块风格"布局和"严格面积风格"布局。在砖块风格布局中,每个图形组件必须是可变面积。当页面上所有的图形组件是可变面积时,可以操控图形组件的面积以便显著地减少或甚至消除相邻图形元素之间的未用空间。在这种情况下,这些图形组件就像墙壁上的砖块一样组合在一起。根据用于实现这种情况的 一种方法,每个图形组件的面积被约束成与其相邻图形组件相同的高度或宽度。图9示出了砖块风格布局。
当用户更乐意指定面积要求以便控制要在页面上示出的各个图像的相对比例时,可以使用严4各面积风格布局。在严才各面积风格布局中,用于创建布局的图形组件的任何子集能够被指派为具有固定的面积,意味着相关图像被约束为具有预定面积。当使用严格面积风格布局时,用户可指定一个图形组件相对于另一个的相对比例。例如,用户可指定第一相片可显示成第二相片的两倍大。可选地或附加地,用户可指定给定的图形组件必须以给定的尺寸或用给定的比例来呈现。图IO示出了严格面积风格布局。回到图2,在步骤105, CBT根被指派为当前节点。在步骤106,在 递归过程中表征当前节点的包围盒。如将详细描述的,这个递归过程还 表征当前节点的所有孩子的包围盒。下面关于图11描述步骤106的递 归过程的一种实施方式。本质上,图11的递归过程从端节点到CBT根 自二叉树向上进;f亍以确定由相继更大的(successively larger)包围 盒所创建的印迹的平面形状,其中在该过程中每个相继更大的包围盒包 括下个节点的孩子。最后,该过程能够确定由所有图形元素在它们被一 起放置得尽可能紧密时所创建的印迹的平面形状。
仍参照图2,页面上空间的物理区域被分派给CBT根(步骤107)。 下面关于图12描述步骤107的一种实施方式。在所描述的实施方式中, 分派给根节点的区域与^皮称为aspect—match和ASPECT —FACTOR的因子 有关。如下面更详细描述的,aspect-match是与纟艮节点相关耳关的包围盒 的纵横比和页面上的可用面积的函数。ASPECT —FACTOR可以是用户指定 的并且对应于在最终布局中给定的图形元素能够被剪切的最大量。因 而,ASPECT—FACTOR是剪切因数(CF)的函数。
再次参照图2,在步骤108, CBT根再次被指派为当前节点并且空间 的区域被递归地分派给当前节点的孩子(步骤109 )。下面关于图13-16 描述步骤109的一种实施方式。简而言之,图13中所描述的过程从树 的顶部(即根节点)向下进行到叶子,以基于可用空间区域的尺寸和当 前包围盒的尺寸给(图12所示的过程中确定的)每个相继更小的包围 盒分派页面上的空间区域。
在步骤IIO,基于对应的所分派的空间区域以及基于aspect—match, 为每个图形元素计算调节后的尺度。下面关于图17描述步骤110的一 种实施方式。在步骤111,对于每个图形元素,依照调节后的尺度计算 所剪切的图形元素。在步骤112,将每个剪切的图形元素居中在其所分 派的空间区域。在步骤113,把布局输出给用户。
参照图11,对于树中的每个内部节点,通过使当前节点(方框301 ) 经历递归过程来确定围住图形元素和图形元素之间的固定间距的包围 盒。在该递归过程中,当前节点被确定为是端节点或内部节点(方框 302 )。如果当前节点是端节点,则建立具有相关图形元素的高度和宽 度的包围盒(方框303 )。如果当前节点是内部节点,则当前节点的两 个孩子节点(即左孩子节点(方框304 )和右孩子节点(方框305 ))
12被顺序地指派为当前节点并经历相同的递归过程。
同时参照图8和11,因为VI是图8的CBT的根,所以最初将VI指 派为当前节点。Vl不是端节点,因此该过程移动到VI的左孩子节点, 其为GE1。 GE1是端节点,因此该过程移动到方框303,在此包围盒的高 度和宽度被设定为GE1的高度和宽度。该过程接下来移动到节点VI的 右孩子,其为Hl。 Hl不是端节点,因此该过程移动到Hl的左孩子节点, 其为V2。 V2不是端节点,因此该过程移动到V2的左孩子节点,GE2。 GE2是端节点。因而,该过程移动到方框303并且包围盒的高度和宽度 被设定为GE2的高度和宽度。该过程现在移动到V2的右孩子节点,GE3。 GE3也是端节点。因而,该过程移动到方框303并且包围盒的高度和宽 度被设定为GE3的高度和宽度。现在已确定了 V2的左孩子和右孩子节 点的包围盒,因此该过程移动到方框306。
在306,该过程确定当前节点是水平划分还是垂直划分。在这种情 况下,V2是垂直划分,因此该过程移动到方框309以便绘制包括GE2和 GE3的包围盒。在方框309, GE2/GE3包围盒的高度被设定为GE2和GE3 的包围盒的高度的较大值。在方框310, GE2/GE3包围盒的宽度被设定 为GE2和GE3的包围盒的宽度加上与当前节点相关联的任何间距的总 和。
如果该划分是水平划分,该过程将移动到方框307,在此围绕两个 孩子节点的包围盒的宽度将被设定为等于这些孩子节点的包围盒的宽 度的较大值。然后该过程将继续移动到方框308,在此围绕两个孩子节 点的包围盒的高度将被设定为围绕每个孩子节点的包围盒的高度加上 与当前节点相关联的间距的总和。
在确定围绕这两个孩子节点的包围盒的尺寸之后,该过程然后向上 移回到Hl并向下移动到Hl的右孩子节点,其为H2。 H2不是端节点, 因此该过程移动到H2的左孩子节点,其为V3。 V3不是端节点,因此该 过程移动到V3的左孩子节点,其为GE4。 GE4是端节点,因此GE4包围 盒被设定为GE4的高度和宽度。该过程以此方式继续,以绘制围绕GE5 的包围盒、然后GE4 + GE5、然后GE6、然后GE7、然后GE6 + G7、然后 ((GE4 + GE5 ) + ( GE6 + G7 ))、然后(((GE4 + GE5 ) + ( GE6 + GE7 )) + ( GE2 + GE3 ))以及最后((((GE4 + GE5 ) + ( GE6 + GE7 ) ) + ( GE2 + GE3) ) +GE1)。在这点,计算整个根节点的包围盒。参照图12,页面上的空间的物理区域被分派给CBT根。根据一个实 施例,这个过程使用称为ASPECT —FACTOR的控制参数,ASPECT—FACTOR 规定最大可允许的剪切量。ASPECT_FACTOR的值例如可由用户确定。例 如,用户可指定至多仅可剪切任何图形元素的5%、 10%、 25%等。
ASPECT — FACTOR的值必须大于或等于1.0。 ASPECT — FACTOR的值越 大,允许该过程对图形元素给予的剪切也越多。换言之,ASPECT —FACTOR 的值越大,允许该过程剪除掉的内容也越多。
因而,如果ASPECT —FACTOR具有值x并且任何输入照片的纵横比是 a,则剪切过的图形元素将具有处于以下区间内的任何位置的纵横比 [x/a,x*a]。 1. Q的值规定根本不剪切照片;而2. 0的值规定可剪除掉高 达一半的任何给定图形元素。3.0的值规定可剪除掉高达三分之二的任 何给定照片,等等。根据一些实施例,ASPECT_FACTOR的值的合理范围 可以是1. O和4. 0之间的任何位置。因而,用户可指定表示用户将允许 该过程剪切的图形元素的量的百分比、比率或其他值,并且由用户指定 的值能够被转换成适当的ASPECT —FACTOR值。
仍参照图12,该过程取决于布局风格。在方框311,该过程确定该 布局是严格面积风格还是砖块风格。如果该布局是严格面积风格,则页 面的整个可用面积(usable area)净皮分配给根节点(方框312)。如果 该布局是砖块风格,则该过程移动到方框313。
在方框313,计算aspect-matchR的值。主包围盒纵横比(pbb_a ) 被设定为与根节点相关联的包围盒的纵横比,页面的纵横比(page_a) #皮_没定为页面上可用面积的纵、4黄比,而aspect—match祐:设定为 min{pbb —a, page — a}/max {pbb —a, page — a}。 因而,aspect—match将为 0和1之间的数。
在方框314,该过程确定ASPECT —FACT0R*aspect—match是否大于 1.0。如果大于1.0,则ASPECT — FACTOR的值允许够多的(more than enough)剪切以完全填充该页面并且该过程移动到方框312,在此页面
的整个可用面积#皮分配给4艮节点。
另一方面,如果ASPECT —FACT0R*aspect_match不大于1. 0,则该过 程移动到方框315。在方框315,空间区域的尺度被设定为与根相关联 的包围盒的尺度。在M6,该过程确定pbb —a是否大于page —a。如果pbb_a 大于page-a,则页面上的空间区域的宽度被增加到ASPECT_FACT0R倍(方框317)。如果pbb —a小于page-a,则页面上的空间区域的高度被 增加到ASPECT—FACTOR倍。在这点,空间区域的尺度被计算,并且还需 确定相对于页面上可用面积的位置。这是在方框319完成的,在此页面 上的空间区纟或处于页面的可用区(usable area)的中央。
参照图13,在递归过程中将页面上的空间区域分派给根节点的孩 子。最初,该过程确定当前节点是否是端节点(方框320 )。如果该节 点是端节点,则没有需要被分派空间区域的根节点的孩子并且这个过程 可以:故跳过。然而如果该节点不是端节点,则该过程确定(方框321 ) 布局风格是否是严格面积和/或CBT中的当前节点是否对应于图形组件 的根,该图形组件具有应当被分隔 一精确距离的多个图形元素。
如果布局是砖块风格或如果当前节点不对应于具有应当被分隔一 精确距离的多个图形元素的图形组件的根,则该过程直接进行到方框 323。然而,如果布局是严格面积风格并且CBT中的当前节点对应于具 有应当被分隔一精确距离的多个图形元素的图形组件的根,则压缩分派 给当前节点的空间区域(方框322 )。该压缩的目的是使得图形元素紧 密地定位在一起,以传达预期的视觉联想。例如,考虑相邻图形组件之 间的空间被压缩成至少0. 5英寸的严格面积布局。如果图形组件之一是 视频关键帧的序列,则可能期望的是指定(该图形组件的)图形元素被 分隔某个较小的距离,比方说O. 2英寸,以传达关键帧形成内聚集的视 觉线索。下面关于图14描述这个步骤的实施方式。
在方框323,该过程确定当前节点是表示水平划分还是表示垂直划 分。如果其是水平划分,则该过程进行到方框324。如果其是垂直划分, 则该过程进行到方框327。
在方框324,为左孩子和右孩子计算空间区域的高度和宽度。下面 关于图15描述这个过程的一种实施方式。然后,左孩子的空间区域被 定位在分配给当前节点的空间区域的尽可能"北部"(方框325 )。类 似地,右孩子的空间区域被定位在分配给当前节点的空间区域的尽可能 "南部"(方框326 )。
在方框327,计算左孩子和右孩子的空间区域的高度和宽度。下面 关于图16描述这个过程的一种实施方式。然后,左孩子的空间区域被 定位在分配给当前节点的空间区域的尽可能"西部"(方框328 )而右 孩子的空间区域被定位在分配给当前节点的空间区域的尽可能"东部"(方框329 )。
上面描述的过程被递归地重复以把空间区域分派给左孩子节点(方
框330 )和右孩子节点(方框331)的孩子,直到空间区域被分配给树 中的所有节点。
参照图14,空间的初始区域被分派给当前节点。在332,确定空间 的初始区域的纵横比(region —a)。根据一个实施例,通过从可用于图 形元素的总空间量中减去将专用于(devoted to)单元间的间距的空白 空间量,确定空间的初始区域的纵一黄比。因而,在当前节点与包括^L频 关键帧的序列的图形组件相关联的示例中,reg ion —a基于图形元素要被 排列成的行列数以及两个图形元素之间的期望间距 (INTRA —GA-SPACING)。在当前实施例中,,i设两个图形元素之间的期 望间距在对应于当前节点的整个图形组件上是恒定的。
因而,继续当前节点与包括视频关键帧的序列的图形组件相关联的 示例,vert一space被设定为
INTRA —GA —SPACING* (nuirows-1)并且
horiz —space被设定为
INTRA — GA —SPACING* (num—cols-1)。
接着,region一ht被设定为 (空间的初始区i或的高度)_ ( vert — space ),而
region—wd被设定为
(空间的初始区域的宽度)-(horiz —space )。 最终,region —a被确定为region — ht/region—wd。 在333,围绕以当前节点为根的子树的包围盒被确定,假设与所有 节点相关联的间距为零。这个包围盒可以通过让该当前节点经历图11 的过程来确定,其中(方框308和310中提及的)内部节点间距暂时设 为零。
在334,计算aspect一match。才艮据一个实施例,aspect—match净皮确 定为
min{bb —a, region —a}/max {bb — a, region —a} 其中bb — a是方框333中包围盒的纵横比。
在方框335,该过程确定ASPECT —FACT0R*aspect—match是否大于 1. 0。如果ASPECT —FACT0R*aspect —match大于1,则ASPECT —FACTOR的值允许够多的剪切,因此空间区域不会被压缩。如果
ASPECT-FACTOR*aspect_match不大于1,则该过程确定bb —a是否大于 region — a (方才匡336 )。
如果bb —a大于region —a,则空间区域的高度被确定为regioruht (方框337 )并且空间区域的宽度被确定为
(region —ht/bb —a ) *ASPECT —FACTOR (方框338)。
如果bb_a不大于region一a,则空间区域的宽度#皮确定为region一wd (方框339 )并且空间区域的高度被确定为
(region—wd*bb —a ) *ASPECT —FACTOR (方框340)。
在方框341,空间区域的高度通过加回vert —space来增加,而空间 区域的宽度通过加回horiz —space来增加。在方框342,通过让空间区 域位于空间的初始区域的中央,来确定空间区域的位置。
在关于图15和16所描述的方法中,给定图形组件之间的要求间距, 确定待分派给每个图形组件的空间的比例。首先参照图15,示出了用于 在当前节点是水平划分时计算左手孩子和右手孩子的空间区域的高度 和宽度的方法。在343, H被确定为空间的当前节点区域的高度。在344, S被确定为当前节点间距。在345,L被确定为左孩子节点包围盒的高度。 在346, R被确定为右孩子节点包围盒的高度。在347,分配给右孩子 的区域的高度被确定为(H-S) *R/(L + R)。在348,分配给左孩子的 区域的高度被确定为(H-S) *L/(L + R)。在349,分配给每个孩子的 区域的宽度被设定为等于被分配给当前节点的区域的宽度。
下面转到图16,示出了用于在当前节点是垂直划分时计算左手孩子 和右手孩子的空间区域的高度和宽度的方法。在350, W被确定为空间 的当前节点区域的宽度。在351, S被确定为当前节点间距。在352, L 被确定为左孩子节点包围盒的宽度。在353, R被确定为右孩子节点包 围盒的宽度。在354,分配给右孩子的区域的宽度被确定为(W-S)*R/ (L + R)。在355,分配给左孩子的区域的宽度被确定为(W-S) *U (L + R)。在356,分配给每个孩子的区域的高度被设定为等于被分配 给当前节点的区域的高度。
参照图17,计算调整后的图形元素尺度。在357,确定未剪切的图 形元素的原始纵横比。根据一个实施例,原始纵横比(orig—a)被确定 为orig—ht/orig—wd,其中orig—ht是来自初级区的未剪切图形元素的高度
17而orig—wd是来自初级区的未剪切图形元素的宽度。
在358,确定单元(cell)纵横比(cell—a)。根据一个实施例,cell—a 被确定为cell一ht/ce11—wd,其中cell一ht是分派给与图像单元对应的端节 点的空间区域的高度而cell一wd是分派给与图像单元对应的端节点的空 间区域的宽度。在3 5 9, aspect—match被确定为
min(orig — a, eel La}/max {or ig —a, cell一a)。
在360,该过程确定ASPECT —FACT0R*aspect—match是否大于1. 0。 如果ASPECT —FACTOR*aspect_match大于1. 0,则ASPECT — FACTOR的值允
许够多的剪切,因此剪切的照片应当完全地填充该单元并且图形元素的 剪切高度(crop —ht )被确定为cell-ht而图形元素的剪切宽度(crop—wd ) 被确定为eel 1—wd (方框361 )。
如果ASPECT —FACT0R*aspect—match不大于1. 0,则该过程进行到方 框362并确定orig —a是否大于cell—a。如果orig —a大于ce 11—a,则 crop一ht被确定为eel l一ht并且crop—wd被确定为(eel l一ht/orig — a ) 承ASPECT FACTOR (方框363 )。如果orig —a不大于eel 1—a,则cmp—wd 被确定为cell—wd并且crop —ht被确定为(ce 11 —wd/orig一a )承ASPECT FACTOR (方框364 )。
前面描述提供了形成视觉上令人愉悦的布局的能力,所述布局最大 化了页面覆盖率并最小化了内容去除,同时允许用户可对去除的最大内 容量进行最终控制。
虽然参照示例性实施例描述了该发明,但是本领域技术人员将能对
而,本文使用的术语和描述是仅作为示例阐述的并不是作为限制。
权利要求
1. 一种用于把页面上的多个图形元素排列成最终页面布局的方法(10),该方法包括识别最大剪切因数(CF),该最大剪切因数确定该页面上的图形元素能被剪切的最大量;通过以下步骤为该页面上的图形元素获取(13)初级布局相对于该页面上的其他图形元素为每个图形元素分配(102)该页面上的大体区域;和为每个图形元素分配(104)初级区;给初级布局分配(14)该页面上的最终区;为每个图形元素分派(15)该页面上的最终区;以及通过以下步骤把每个图形元素适配(16)到其所分派的最终区通过不大于CF的因数来剪切(111)每个图形元素;和使每个剪切的图形元素位于分派的最终区的中央(112)使得该图形元素覆盖该最终区的最大量。
2. 如权利要求1所述的方法,进一步包括获取对应于初级布局的完 全二叉树(CBT),其中该CBT包括才艮节点;和从该根节点发出的至少一个端节点,其中每个端节点对应于初级布 局中的图形元素。
3. 如权利要求2所述的方法,其中给初级布局分配该页面上的最终 区包括通过递归地表征围绕CBT中每个节点的包围盒来指派初级布局的 主包围盒(pBB)。
4. 如权利要求2所述的方法,其中给初级布局分配该页面上的最终 区进 一 步包括确定C F的值是否足以允许填充页面上的可用面积。
5. 如权利要求4所迷的方法,进一步包括确定(323 )当前节点是表示水平划分还是表示垂直划分;如果当前节点表示水平划分为左孩子和右孩子计算(324 )页面上的最终区的高度和宽度; 把左孩子的最终区定位(325 )到被分配给当前节点的空间区域的尽可能北部;和把右孩子的最终区定位(326 )到被分配给当前节点的空间区域的尽可能南部;以及如果当前节点表示垂直划分为左孩子和右孩子计算(327 )页面上的最终区的高度和宽度; 把左孩子的最终区定位(328 )到被分配给当前节点的空间区域的尽可能西部;和把右孩子的最终区定位(329 )到被分配给当前节点的空间区 域的尽可能东部。
6. —种用于在页面上提供图形元素的布局的方法(10),该方法包括把图形元素初步定位到页面上,以便在给定每个图形元素的原始平 面形状的条件下最大化页面覆盖率;识别能够被剪切的每个图形元素的最大量; 把每个图形元素剪切不超过最大量;和 增加每个图形元素的尺度以便最大化页面覆盖率。
7. 如权利要求6所述的方法,进一步包括维持每个图形元素之间的 预定间距量。
8. 如权利要求6所述的方法,其中图形元素中的至少一个^皮压缩成具有预定的相对面积。
9. 如权利要求8所述的方法,其中图形元素中的至少两个构成图形 组件,且其中该图形组件中的图形元素在布局中必须彼此邻近地呈现。
10. —种具有计算机可执行指令的计算机可读介质,所述指令用于 执行用于排列区内的一组图形组件的方法(10),所述指令包括识别最大剪切因数(CF),该最大剪切因数确定页面上的任何图形元素能被剪切的最大量;通过以下步骤为页面上的图形元素获取(13)初级布局 相对于页面上的其他图形元素为每个图形元素分配(102)页面上 的大体区域;和为每个图形元素分配(104)初级区; 给初级布局分配(14)页面上的最终区; 为每个图形元素分派(15)页面上的最终区;以及 通过以下步骤把每个图形元素适配(16)到其所分派的最终区 通过不大于CF的因数来剪切(111 )每个图形元素;和使每个剪切的图形元素位于分派的最终区的中央(112)使得该图 形元素覆盖最终区的最大量。
11. 如权利要求10所述的计算机可读介质,其中所述计算机可执行 指令进一步包括获取(103)对应于初级布局的完全二叉树(CBT),其中该CBT包括才艮节点;和从该根节点发出的至少一个端节点,其中每个端节点对应于初级布 局中的图形元素;以及通过递归地表征围绕该CBT中每个节点的包围盒来指派初级布局的 主包围盒(pBB),给初级布局分配页面上的最终区。
12. 如权利要求10所述的计算机可读介质,其中所述计算机可执行 指令进一步包括通过确定(314) CF的值是否足以允许填充页面上的可 用面积来给初级布局分配页面上的最终区。
13. 如权利要求12所述的计算机可读介质,其中,如果该剪切因数 不足以允许填充页面上的可用面积,则所述指令进 一 步包括把最终区的尺度设定为等于pBB的尺度;和 把最终区的不足尺度延伸到CF倍。
14. 如权利要求12所述的计算机可读介质,其中,如果该剪切因数 足以允许填充页面上的可用面积,则所述指令进一步包括把最终区的尺度设定为等于页面上的可用面积的尺度。
15. 如权利要求10所述的计算机可读介质,其中所述计算机可执行 指令进一步包括确定(323 )当前节点是表示水平划分还是表示垂直划分; 如果当前节点表示水平划分为左孩子和右孩子计算(324 )页面上的最终区的高度和宽度; 把左孩子的最终区定位(325 )到被分配给当前节点的空间区 域的尽可能北部;和把右孩子的最终区定位(326 )到被分配给当前节点的空间区 域的尽可能南部;以及如果当前节点表示垂直划分为左孩子和右孩子计算(327 )页面上的最终区的高度和宽度;把左孩子的最终区定位(328 )到被分配给当前节点的空间区域的尽可能西部;和把右孩子的最终区定位(329 )到被分配给当前节点的空间区域的尽可能东部。
全文摘要
描述了一种用于把页面上的多个图形元素排列成最终页面布局的方法。该方法包括识别最大剪切因数(CF),该最大剪切因数确定页面上的图形元素可被剪切的最大量;为页面上的图形元素获取(13)初级布局给初级布局分配(14)页面上的最终区;为每个图形元素分配(15)页面上的最终区;以及把每个图形元素适配(16)到其分派的最终区。
文档编号H04N1/387GK101523887SQ200780036573
公开日2009年9月2日 申请日期2007年9月26日 优先权日2006年9月28日
发明者C·B·阿特金斯 申请人:惠普开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1