用于查看图像的应用的制作方法

文档序号:11250532阅读:762来源:国知局
用于查看图像的应用的制造方法与工艺

本申请是申请日为2013年1月3日、申请号为201380001436.6、标题为“用于查看图像的应用”的中国发明专利申请的分案申请。



背景技术:

数字图像编辑和查看应用为专业的及业余的摄影者提供了用于组织和编辑他们的照片的工具。这些应用为用户提供了组织照片的合集以及以各种方式来修改照片的各种图像属性的能力。

在现代世界,触摸屏装置正在不断地普及。市场上的许多平板电脑和智能电话都使用触摸屏,并且许多人都拥有这样的触摸屏装置。另外,许多用户既用他们的便携式触摸屏装置拍摄照片,也将来自其他来源(例如,数字相机)的照片装载到他们的便携式触摸屏装置之上。正因如此,就需要适于可用于触摸屏装置上的独特控制、用来查看、组织和编辑照片的应用。



技术实现要素:

本发明的一些实施例提供了一种用于查看和处理图像的新应用。在某些实施例中,该应用在多种不同模式下运行,不同的图形用户界面(gui)用于不同的模式。例如,在某些实施例中,应用按照左手和右手两种模式运行于触摸装置上。除了用于不同模式的不同gui之外,某些实施例在不同的模式中按照不同方式(例如,不同取向)来给出具体的用户界面工具。该应用提供了用于处理一个或多个图像的各种特征。例如,某些实施例使用于查看多个不同图像的不同方法成为可能,包括(i)用于选择多个项目的新的触摸交互以及(ii)用于从一组图像中识别出相似的图像的新方法。另外,该应用还提供用于处理多个选定图像的的各种新型交互,例如,用于轮转图像以及标注图像的交互。

如上所述,某些实施例的应用提供了多种不同的模式(例如,左手模式和右手模式)。某些实施例根据特定的gui项目在gui中的位置来切换模式。在切换模式时,某些实施例保持第一gui项目集合在gui中的关系(例如,顺序),同时修改第二gui项目集合的关系。另外,当某些工具按不同的模式来激活时,某些实施例的应用按照不同的方式(例如,取向)来给出这些工具。

在某些实施例中,该应用提供了用于切换模式的用户界面机制。例如,某些实施例的gui包括用于显示一组图像的缩略图的缩略图显示区以及用于显示所选图像的较大的(并且在某些情况下,可编辑的)版本的图像显示区。在某些实施例中,缩略图显示区是可移动的,并且该应用基于缩略图显示区要移至的gui中的位置而在左手和右手模式之间切换(例如,当缩略图显示区在gui的右侧时为左手模式,而当缩略图显示区在gui的左侧时为右手模式)。

当应用在两种模式之间切换时,某些实施例保持第一gui项目集合的顺序,同时改变第二gui项目集合的顺序。特别地,该应用保持与各种编辑工具关联的gui项目集合的顺序,以便保持典型地按其来使用编辑工具的顺序。另一方面,该应用保持第二gui项目集合的顺序,以便保持gui项目位于相对于缩略图显示区的相同位置。

另外,图像查看、编辑和组织应用在不同的模式中按照不同的方式来提供某些gui工具。例如,取决于应用是处于左手模式还是处于右手模式,某些实施例按照不同的取向来显示特定的工具。一个这样的具体工具是用于放大图像显示区的特定区域的缩放工具。某些实施例的缩放工具是能够改变放大程度的圆形放大器。要修改放大,用户执行两个单独的触摸输入的旋转手势(例如,以拇指和食指)。当按右手模式来操作时,应用在放大器的左侧显示放大信息,并且当按左手模式来操作时则相反。这防止用户的手妨碍查看缩放工具上的放大信息。而且,某些实施例切换旋转方向,以便在这两种不同模式之间进行放大或缩小。

如上所述,在某些实施例中,缩略图显示区在应用gui的两个不同侧之间是可移动的。另外,应用还使用户能够经由扫动(swipe)手势(例如,在触摸屏上的右扫和左扫手势)将缩略图显示区移动到应用gui之上以及移离应用gui。而且,用户能够通过以在触摸屏上的拖拽手势移动在缩略图显示区与图像显示区之间的界线来修改缩略图显示的尺寸(以及缩略图的列数)。

除了在不同模式下操作之外,图像查看、编辑和组织应用提供用于查看及处理图像的多种新操作和交互。例如,某些实施例使用于选择多个图像的几种不同操作能够显示于图像显示区内。一个这样的操作涉及对在缩略图显示区内的第一及第二缩略图的同时选择(例如,经由两个不同的触摸输入),以便选择第一及第二缩略图以及它们之间的所有缩略图。响应于这样的区块选择,应用在图像显示区中显示与所选择的缩略图对应的全部图像。

某些实施例另外还区分不同类型的缩略图选择输入。例如,当用户按照第一方式来选择特定的缩略图(例如,在触摸屏上的敲击或者单击)时,应用只选择该特定缩略图并且在显示区内只显示其相应的图像。但是,当第一缩略图已经被选择并且用户按照第二方式来选择第二缩略图(例如,以在触摸屏上的长按或者点击并按住)时,应用保持对第一缩略图的选择,同时选择第二缩略图。应用在图像显示区内显示第一及第二图像两者(以及任何其他已选图像)。以此方式,某些实施例允许用户将任意数量的图像添加到图像显示区。

此外,某些实施例的图像查看、编辑和组织应用能够根据特定的准则集合显示与所选图像类似的所有图像。当用户按照第三方式来选择图像(例如,经由在触摸屏上的两次敲击、双击等)时,应用将在关联图像的合集中的所有图像(例如,其缩略图适合于在缩略图显示区内显示的图像)与所选图像进行比较,并且根据特定的准则集合识别出哪些图像与所选图像相似度在阈值内。某些实施例生成图像的像素的柱状图(例如,基于像素的颜色、纹理及梯度值)并且比较柱状图以识别相似的图像。在某些实施例中,应用为图像的不同区域生成不同的柱状图并且比较相应区域的柱状图。图像按以下方式来划分成区域:某些像素是多个区域的一部分,而其他像素是只是一个区域的一部分。这使应用在进行两个图像间的比较时能够对更能表示图像的内容的像素(例如,在中心的像素)予以更多的考虑。

当在图像显示区内显示多个图像时,某些实施例在不同的图像之间保持恒定的视觉权重。也就是,不是要尝试通过将图像显示为不同的尺寸来填充图像显示区内的全部空间,而是应用将每个图像显示为相同的尺寸,而不考虑图像的尺寸。为了在不同的图像之间保持视图权重恒定,某些实施例计算要显示于图像显示区内的所有图像的平均纵横比,然后识别出将图像显示区划分成正确数量的具有平均纵横比的区域的最佳划分。在这些区域之内,应用然后显示图像,使得每个图像使用相同数量的像素来显示。

一旦多个缩略图被选择并且多个图像被显示于图像显示区内,某些实施例就提供用于查看图像以及与其交互的各种新交互。例如,用户能够在所示图像之一上执行选择操作(例如,在触摸屏上的敲击、鼠标点击)。某些实施例在图像显示区内只显示所选图像(即,主选择图像),但是保持对其他图像的次选择。为了指示这些选择,应用以第一选择指示符来高亮显示次图像选择的缩略图,同时以第二选择指示符来高亮显示主选择图像(所示图像)的缩略图(例如,使用粗的和细的高亮显示边界)。

当在这种查看模式中时,对于多个图像,某些实施例允许用户以水平扫动手势来轮转不同的选择图像。另外,用户能够以垂直扫动手势来从所选图像集合中去除图像。当图像被从集合中去除时,应用从相应的缩略图中去除选择指示符。当多个图像被显示于图像显示区内时,用户能够将标签(例如,最喜爱标签)施加于全部图像,或者选择图像之一用于主显示并且然后将标签仅施加于主图像选择。

在查看图像时,某些实施例的应用允许用户与图像寄存(hosting)网站及社会媒体网站进行双向交互。例如,用户能够给图像添加标题,该标题在图像查看应用内被附于图像,并且在图像被导出到外部应用或网站时也附于图像。而且,当外部网站的用户对所寄存的图像评论时,某些实施例自动地检索该信息并且在图像查看应用内显示外部评论。

除了上述特征外,某些实施例的应用还提供了上下文相关的帮助特征。特别地,当帮助工具被调用时,应用显示针对用户当前正用以进行工作的项目进行了修改的帮助指示符。当用户变更使用中的活动工具集合时,应用针对该活动工具集合来显示帮助指示符。对于可移动工具(例如,滑动块),某些实施例在工具被移动时连同工具一起来移动帮助指示符。

前述发明内容意图用作对本发明的某些实施例的简要介绍。它并非是要作为本文所公开的所有发明主题的介绍或概述。随后的具体实施方式以及在具体实施方式中所参照的附图将进一步描述发明内容部分所描述的实施例以及其他实施例。因此,要理解本文所描述的所有实施例,需要对发明内容、具体实施方式和附图进行全面回顾。而且,所要求保护的主题并不限定于在发明内容、具体实施方式和附图中的说明性细节,而是应当由所附的权利要求书来定义,因为所要求保护的主题能够在不脱离本主题的精神的情况下以其他具体形式来实现。

附图说明

本发明的新特征在所附的权利要求书中进行阐明。但是,出于解释起见,本发明的几种实施例在附图中进行阐明。

图1示出了用于某些实施例的图像查看应用的gui的两种不同模式。

图2示出了对要同时显示于gui的图像显示区内的多个图像的选择。

图3示出了用于根据特定的准则集合显示与所选图像相似的所有图像的处理。

图4示出了标签图像在gui中的施加。

图5示出了上下文相关的帮助特征在gui中的使用。

图6示出了根据某些实施例的新图像合集的创建。

图7在概念上示出了用于创建新图像合集(例如,相册)的某些实施例的处理。

图8在概念上示出了某些实施例的合集数据结构800。

图9示出了在图像组织、查看及编辑gui与合集组织gui的之间的导航。

图10示出了在合集组织gui内的用于查看新创建的相册的用户导航。

图11示出了根据某些实施例的通过合集组织gui的用户导航。

图12示出了根据某些实施例的垂直滚动技术。

图13示出了在肖像模式下对于某些实施例的移动电话及媒体播放器的实现方式的经由四个阶段的在图像查看及编辑gui与合集组织gui之间的导航。

图14示出了用于查看、编辑和组织图像的某些实施例的gui的详细视图。

图15在概念上示出了某些实施例的应用所存储的图像的数据结构。

图16示出了在用户用以将缩略图显示区从gui的左侧移动到右侧以便从右手模式切换为左手模式的四个阶段上的gui。

图17-19示出了在肖像和风景两种模式中的某些实施例的左手和右手gui模式。

图20在概念上示出了用于示出在某些实施例的图像查看gui中的缩略图显示区的状态及其改变的状态图。

图21示出了用户增大缩略图显示区的尺寸。

图22示出了用户减小缩略图显示区的尺寸。

图23示出了用于在右手gui模式下从gui中去除缩略图显示区的扫动手势。

图24示出了用于在左手gui模式下从gui中去除缩略图显示区的相似扫动手势。

图25示出了关于gui项的选择,其促使缩略图显示区滑出gui。

图26示出了用于在右手gui模式下使缩略显示区返回到gui的扫动手势。

图27示出了用于在左手gui模式下使缩略显示区返回到gui的相似扫动手势。

图28示出了对用于促使缩略图显示区滑动到gui上的gui项目的选择。

图29示出了用户对缩略图显示区进行滚动。

图30示出了在用户滚动缩略图显示区内的合集的缩略图时的肖像模式的gui。

图31示出了对肖像gui中的缩略图显示区的尺寸的修改。

图32示出了缩略显示区在其尺寸减小为一行时的水平滚动。

图33示出了用户滚动在某些实施例的移动电话及媒体播放器的缩略图显示区内的图像。

图34在概念上示出了用于调用缩放工具的某些实施例的处理。

图35示出了通过某些实施例的右手gui来调用和取消选择缩放工具的实例。

图36示出了在gui处于左手模式时通过gui来调用缩放工具的实例。

图37在概念上示出了呈现在某些实施例中的缩放工具的各种操作的状态图。

图38示出了在右手gui中的缩放工具的放大操作。

图39示出了在右手gui中的缩放工具的缩小操作。

图40示出了缩放工具的移动操作。

图41示出了在左手gui中的缩放工具的放大操作。

图42示出了在左手gui中的缩放工具的缩小操作。

图43在概念上示出了用于识别和显示在合集中的相似图像的某些实施例的处理。

图44示出了其中用户选择特定的图像并且应用识别在合集中的与所选图像相似的一组图像的图像查看应用的gui。

图45在概念上示出了图像被划分成9个不同图块(tile),该9个图块每个都是图像尺寸的1/4。

图46示出了由该特定的图像划分产生的16个像素象限,并且图块的像素包括来自每个象限的像素。

图47在概念上示出了用于生成根据本发明的某些实施例的柱状图集合的处理4700。

图48在概念上示出了hsv颜色空间4800。

图49示出了已界定两个区域的hsv颜色空间的圆形剖面(即,在恒定值处)。

图50示出了被划分成两个区域的hsv颜色空间的三维部分。

图51示出了由某些实施例用来计算中央像素的纹理的9个像素。

图52在概念上示出了用于生成柱状图且针对相似性来比较图像的某些实施例的图像查看、编辑和组织应用的某些部分的软件体系结构。

图53在概念上示出了用于在图像显示区内选择缩略图区块的某些实施例的处理。

图54和55示出了选择缩略图区块的实例。

图56在概念上示出了用于将在未选定的缩略图之上的用户输入转译成对缩略图的选择的某些实施例的处理。

图57示出了在某些实施例的gui中的各种选择输入。

图58示出了在某些实施例的移动电话及媒体播放器gui中的相似选择操作的集合。

图59在概念上示出了用于在图像显示区内同时显示多个图像的某些实施例的处理。

图60示出了其中用户进行对四个缩略图的区块选择的gui。

图61示出了四个选定图像的平均纵横比区域。

图62示出了在4∶3图像显示区6005内的187∶144纵横比区域的理想列数为2,具有两个行。

图63示出了适合于网格区域内的不同纵横比的图像。

图64示出了图像在适合于占用在图像显示区内的与其他图像的特定区域相同的面积时的尺寸。

图65示出了显示于图像显示区内的四个图像。

图66在概念上示出了用于描述与图像的选择/取消选择以及已选图像的查看相关的某些实施例的gui的不同状态以及在这些状态之间的转变的状态图。

图67示出了从在gui中显示多个已选图像到显示作为活动图像的已选图像之一的转变。

图68示出了在gui中的一系列右向扫动手势,以便在所选图像之间轮转。

图69示出了在gui中的一系列左向扫动手势,以便在所选图像之间轮转。

图70示出了在某些实施例的gui中的向下扫动手势。

图71示出了用户在gui中在所选择的缩略图上敲击的实例。

图72在概念上示出了与在三个不同状态中的标签施加相关的某些实施例的gui的状态图。

图73示出了对图像进行的隐藏图像标签施加。

图74示出了对图像进行的标记图像标签施加。

图75示出了对多个图像进行的标记图像标签施加。

图76示出了标签过滤按钮的使用。

图77示出了对图像进行的最喜爱标签施加。

图78示出了对多个图像进行的最喜爱标签施加。

图79在概念上示出了在接收到对图像施加的标签时由某些实施例的应用执行的处理。

图80示出了从相册到最喜爱图像的合集的用户导航。

图81-83示出了在gui中对一个或多个图像的图像信息的访问。

图84示出了用户给图像添加标题。

图85示出了根据某些实施例的与gui间的用户交互,以便经由社会媒体网站来共享图像。

图86在概念上示出了用于经由社会媒体或相片共享网站来共享图像的某些实施例的处理。

图87示出了用户将图像上传到

图88示出了用户选择两个图像来上传到包括在图87中上传的的图像的编辑版本。

图89在概念上示出了用于检索对在相片共享网站或社会媒体网站上的图像发表的评论的某些实施例的处理。

图90示出了用户通过在某些实施例的gui中的信息窗口对共享的图像发表评论。

图91在概念上示出了用于呈现在某些实施例中的帮助特征的各种操作的状态图。

图92示出了根据某些实施例的以明显的方式来显示帮助图标的实例。

图93示出了调用帮助工具的实例。

图94示出了在用户选择gui中的新的工具集合时修改帮助工具层级的实例。

图95示出了连同相应的工具一起自动地移动帮助指示符的应用的实例。

图96示出了显示与gui项目之一相关的详细帮助文档的一个实例。

图97示出了在某些实施例中显示不同的gui项目的帮助指示符的另一个实例。

图98在概念上示出了某些实施例的图像查看、编辑和组织应用的软件体系结构。

图99是某些实施例被实现于其上的移动计算装置的体系结构的实例。

图100在概念上示出了用以实现某些实施例的电子系统。

具体实施方式

在下面的描述中,众多细节、实例和实施例出于解释的目的而进行阐明。但是,本领域技术人员应当意识到,本发明并不限定于所阐明的实施例,并且本发明可以在没有某些所讨论的具体细节及实例的情况下实现。在其他情况下,众所周知的结构和装置以框图形式来示出,以便使关于本发明的描述不会因不必要的细节而变得晦涩难懂。

本发明的某些实施例提供一种用于查看和处理图像的新应用。在某些实施例中,应用在多种不同模式下操作,对于不同模式具有不同的图形用户界面(gui)。例如,在某些实施例中,应用在触摸屏装置上于左手和右手两种模式下操作。除了对于不同模式为不同gui之外,某些实施例还在不同模式中按照不同的方式(例如,不同的取向)来呈现具体的用户界面工具。应用提供了用于处理一个或多个图像的各种特征。例如,某些实施例使用于查看多个不同图像的各种方法成为可能,包括(i)用于选择多个项目的新的触摸交互,以及(ii)用于从一组图像中识别出相似图像的新方法。另外,应用还提供了用于处理多个选定图像的各种新交互,例如,用于轮转图像和标注图像的交互。

如上所述,某些实施例的图像编辑、查看和组织应用(以下称为图像查看应用、图像编辑应用等)提供了多种不同模式(例如,左手和右手模式)。某些实施例根据特定的gui项目在gui中的位置来切换模式。在切换模式时,某些实施例保持第一gui项目集合在gui中的关系(例如,顺序),同时修改第二gui项目集合的关系。另外,某些实施例的应用在某些工具按照不同的模式来激活时按照不同的方式(例如,取向)来呈现这些工具。

图1示出了用于某些实施例的图像查看应用的这样的gui100的两种不同模式。特别地,该图示出了在两个阶段110和120中的于右手模式下的gui100,同时示出在两个阶段130和140中的于左手模式下的gui100。

gui100包括缩略图显示区105、图像显示区115、第一gui项目集合125和第二gui项目集合135。缩略图显示区105显示了图像集合(例如,用户创建的相册或者其他关联图像的合集)的缩略图。缩略图是在合集中的图像的缩小版本。在某些实施例中,缩略图不一定显示整个图像,而是只显示每个图像的一部分使得每个缩略图具有相同的纵横比(例如,方形)。用户能够选择缩略图(例如,经由触摸交互、鼠标点击等)以便促使相应的图像出现于图像显示区115内。

图像显示区115显示一个或多个选定图像的较大版本。在这种情况下,缩略图107在缩略图显示区105内被选择,并且因而在图像显示区115内显示相应的图像。如图所示,某些实施例显示对于在缩略图显示区内的每个任意选定的缩略图的指示。在这种情况下,缩略图107以粗虚线边框来示出;但是,本领域技术人员应当意识到,许多不同的选择指示都是可能的。

除了提供在图像显示区内的查看功能之外,某些实施例还给用户提供各种编辑、标注以及对所示图像施加的其他操作。第一gui项目集合125包括用于激活不同的编辑工具集合来编辑图像的三个项目126-128。项目126-128按特定的从左到右的顺序来排列,该顺序遵循用户通常希望用以对图像进行编辑的顺序。第二gui项目集合135包括按照设计用于基于在gui中与其他项目(例如,缩略图显示区105和图像显示区115)的相对位置提供功能的顺序来布置的三个项目136-138。

如上所述,阶段110示出了在右手模式中的gui100。在该模式中,缩略图显示区105在gui的左侧。另外,gui项目126-128被布置于gui的左侧,项目126在左侧,项目127在中间,而项目128在右侧。gui项目136-138被布置于gui的右侧,项目136在左侧,项目137在中间,而项目138在右侧。

阶段130示出了在左手模式中的gui。在这种情况下,缩略图显示区105位于gui的右侧。这确保了当用户在gui之上移动她的左手时,她的手臂不会阻挡对缩略图显示区的查看。同样地,在右手模式下,在缩略图显示区105位于gui的左侧的情况下,用户的右臂不会阻挡对缩略图显示区105的查看。

在阶段130中,第一gui项目集合125位于gui100的右侧,于缩略图显示区105的下方,而第二gui项目集合125位于gui100的左侧。但是,第一项目集合125保持相同的从左到右的顺序,该顺序匹配用户典型地按其来使用关联的编辑工具的顺序,而与在右手模式中的第二项目集合135相比,该顺序对于这些项目被反转。

在某些实施例中,应用提供了用于在这两种模式中切换的用户界面机制。例如,在某些实施例中,缩略图显示区是可移动的,并且应用基于缩略图被移动到的在gui中的位置而在左手和右手模式之间切换。为了从阶段110到达阶段130,用户能够拾取缩略图显示区105并将其从触摸屏显示的左侧拖拽到触摸屏显示的右侧。在这样做时,应用自动地移动第一及第二工具集合125和135,并且反转第二工具集合135的顺序。

另外,图像查看应用在不同模式中按照不同的方式来提供某些gui工具。例如,取决于应用是处于左手模式还是处于右手模式,某些实施例按照不同的取向来显示具体的工具。图1示出了在两种不同模式中按照不同的取向来激活的这样的gui工具145的一个实例。在这种情况下,gui工具145是用于放大图像显示区的特定区域的缩放工具。

如图所示,在阶段110中,用户以其右手与图像显示区交互以便激活缩放工具145。虽然该图示出了一个手指的交互,但是不同的实施例会响应于不同类型的输入以便激活这样的工具。例如,某些实施例需要在时间上至少部分一致的两个单独的触摸交互,以便激活缩放工具。

阶段120示出了在右手显示模式下的这种交互的结果。应用显示了在用户的触摸交互的位置上的缩放工具145。如图所示,应用显示了沿第一取向的工具145,+号(指示较大的放大)在右侧,而-号(指示较小的放大)在左侧。

相应地,在阶段130中,用户以其左手与图像显示区交互以便激活缩放工具145。阶段140示出了在左手显示模式下的这种交互的结果。如同在阶段120中一样,应用显示了在用户的触摸交互的位置上的缩放工具145。在这种情况下,但是,应用显示了沿第二取向的缩放工具145,+号在左侧,而-号在右侧。

在某些实施例中,缩放工具能够改变放大程度。为了修改放大,用户执行两个单独的触摸输入的旋转手势(例如,以拇指和食指)。在某些实施例中,当应用在右手模式下操作时,顺时针旋转增加放大,而逆时针旋转减小放大。当处于左手模式时,情况正好相反,逆时针旋转增加放大,而顺时针旋转减小放大。

而且,某些实施例显示作为工具的一部分的放大信息(例如,在活动工具内的放大级别)。当处于右手模式时,该放大信息显示于放大器的左侧,然而在左手模式中,信息显示于放大器的右侧。这防止了用户的手在放大或缩小时阻挡对缩放工具上的放大信息的查看。

如上所述,在某些实施例中,缩略图显示区可在应用的gui的不同两侧之间移动。另外,图像编辑应用使用户能够经由扫动手势(例如,在触摸屏上的右向及左向扫动手势)来将缩略图显示区移动到应用的gui上以及移离应用的gui。而且,用户能够通过以在触摸屏上的拖拽手势来移动在缩略图显示区与图像显示区之间的界线来修改缩略图显示区的尺寸(和缩略图的列数)。

除了在不同模式下操作之外,图像查看应用还提供了用于查看和处理图像的多种新的操作和交互。例如,某些实施例使用于选择多个图像以在图像显示区内进行显示的几种不同操作成为可能。图2示出了经由四个阶段210-240对将同时显示于gui200的图像显示区内的多个图像的选择。

gui200包括与以上针对gui100所描述的相应显示区类似的缩略图显示区205和图像显示区215。在该图(以及本申请的其他许多图形)中,gui按右手模式来示出,缩略图显示区在左侧。本领域技术人员应当意识到,所示的许多交互都可等同地应用于左手gui模式。

第一阶段210示出:缩略图225已经被选择,并且相应的选定图像227按较大的可能尺寸显示于图像显示区内(同时保持图像的纵横比)。在第二阶段220中,用户经由触摸交互选择与第二图像237对应的第二缩略图235。本领域技术人员应当意识到,触摸屏装置提供用于区分各种类型的交互(例如,敲击、双敲击、长按、单独的同时交互,多手指交互等)的能力。

第三阶段230示出:图像显示区215现在显示所选的图像227和237两者。而且,应用显示了具有比前一阶段中更浅的虚线边界的缩略图225和235。某些实施例在缩略图显示区中使用不同的选择指示(例如,粗边和细边或者高亮、不同颜色等)来区分当个选定图像和多个选定图像。

在图像显示区215中示出的两个图像227和237并不具有相同的纵横比,而是被显示为近似相同的尺寸。当在图像显示区中显示多个图像时,某些实施例在不同的图像之间保持恒定的视觉加权。也就是,不是尝试要通过将图像显示为不同的尺寸来填充图像显示区内的全部空间,而是应用将每个图像显示为相同的尺寸,而不考虑图像的尺寸。为了在不同的图像之间保持视觉加权恒定,某些实施例计算出将在图像显示区内显示的所有图像的平均纵横比,然后识别出将图像显示区划分成正确数量的具有平均纵横比的区域的最佳划分。在这些区域内,应用然后显示图像使得每个图像都使用相同数量的像素来显示。

第三阶段230还示出了用户经由另一触摸交互来选择与图像247对应的第三缩略图245。结果,在第四阶段240中,图像显示区215显示了三个选定图像227、237和247。为了显示第三图像,应用尚不一定要减小其他两个图像的尺寸,因为这三个图像的相同视觉加权能够在没有尺寸减小的情况下保持。

如上所述,某些实施例响应于各种不同的触摸交互以便在图像显示区中显示多个图像。一种这样的触摸操作涉及在缩略图显示区中对第一及第二缩略图的同时选择(例如,经由两个不同的触摸输入),以便选择该第一及第二缩略图以及它们之间的所有缩略图。响应于这样的区块选择,应用在图像显示区内显示与所选缩略图对应的全部图像。

某些实施例另外还区分不同类型的缩略图选择输入。例如,当用户以第一方式(例如,在触摸屏上的敲击或者单击)来选择特定的缩略图时,应用只选择该特定的缩略图并且在显示区内只显示其相应的图像。但是,当第一缩略图已经被选择并且用户以第二方式(例如,以在触摸屏上的长按或者点击并按住)来选择第二缩略图时,应用保持对第一缩略图的选择,同时选择第二缩略图。在图像显示区中应用显示第一及第二图像两者(以及任何其他选定图像)。以此方式,某些实施例允许用户将任何数量的图像添加到图像显示区。

而且,某些实施例的图像查看应用能够根据特定的准则集合显示与选定的图像相似的所有图像。图3示出了这样的经由gui300的三个阶段310-330的处理。gui300包括缩略图显示区305和图像显示区315,与前面附图中的相应区域类似。

图3的第一阶段310示出:缩略图335被选择并且其相应的图像340被显示于图像显示区315内。在第二阶段320中,用户执行了在所选择的缩略图335上的触摸操作。本领域技术人员应当意识到,这是通用的用户输入,并且其他实施例可以提供对相似图像特征的不同激活(例如,对缩略图的双敲击或双击(不管是否已经选择)、热键或热键序列、触摸手势或手势序列、菜单项目或ui按钮等)。第三阶段330示出:应用已经识别出与所选图像340相似的图像并且将所识别的图像345和350显示于图像显示区315内。而且,相应的缩略图335、355和360全都在缩略图显示区305内被选定,如虚线所示。

为了识别这些相似图像,某些实施例将在关联图像的合集中的所有图像(例如,其缩略图适合于显示于缩略图显示区内的图像)与所选图像进行比较,并且根据特定的准则集合来识别出哪些图像与所选图像间的相似度在阈值内。某些实施例生成图像的像素的柱状图(例如,基于像素的颜色、纹理和梯度值)并且比较这些柱状图以识别出相似的图像。在某些实施例中,应用生成图像的不同区域的不同柱状图并且在图像之间比较相应区域的柱状图。图像按以下方式来划分成区域:一些像素是多个区域的一部分,而其他像素只是一个区域的一部分。这使应用能够在进行两个图像间的比较时对更能指示图像的内容的像素(例如,在图像中心的像素)给予更多的考虑。

一旦多个缩略图被选择并且多个图像显示于图像显示区内,某些实施例就提供用于查看图像以及与其交互的各种新交互。例如,用户能够执行在所显示的图像之一(而不是其相应的缩略图)上的选择操作(例如,在触摸屏上的敲击、鼠标点击)。某些实施例在图像显示区内只显示所选图像(即,主选择图像),但是保持对其他图像的次选择。为了指示这些选择,应用以第一选择指示符来高亮显示次图像选择的缩略图,同时以第二选择指示符来高亮显示主选择图像(所显示的图像)的缩略图(例如,使用粗的和细的高亮边)。

当在用于多个图像的这种查看模式中时,某些实施例允许用户以水平扫动手势来轮转不同的选定图像。另外,用户能够以垂直扫动手势将图像从所选图像集合中去除。当图像被从集合中去除时,应用从相应的缩略图中去除选择指示符。当多个图像被显示于图像显示区内时,用户能够将标签(例如,最喜爱标签)施加于所有图像,或者选择一个图像用于主显示并且然后仅对主图像选择施加标签。

图4示出了经由三个阶段410-430在gui300中对图像340-350进行的这样的标签施加。第一阶段410示出了状态与图3的第三阶段330相同的gui300,图像340-350显示于图像显示区315内。在第二阶段420,用户选择gui项目405以便对所选图像施加标签。gui项目405是概念上的项目,并且图像编辑应用的某些实施例可以通过不同的ui项目、特定类型的选择手势、热键等来实现这样的功能。而且,项目405表示通用标签,而某些实施例可以包括各种不同的标签,例如,最喜爱标签、标记、自定义信息标签等。

第三阶段示出了对gui项目405的选择的结果。三个缩略图335、355和360现在显示用于指示它们已经被标注的标记(marker)。在某些实施例中,应用显示了在缩略图内的某些标签的图标,同时将其他标签简单地存储为所标注图像的性质。另外,gui项目405现在被高亮显示,指示所有选定图像都已经被标注。某些实施例通过高亮显示在gui内的标签按钮来指示在显示区内显示的所有图像都以特定的标签进行了标注。对标签按钮的后续选择将标签从所选图像中去除。

在查看图像时,某些实施例的应用还允许用户与图像寄存网站及社会媒体网站进行双向交互。例如,用户能够对图像添加标题,该标题既在图像查看应用中被附于图像,并且在图像被导出到外部应用或网站时也被附于图像。而且,当外部网站的用户对所寄存的图像进行评论时,某些实施例自动地检索该信息并且在图像查看应用内显示外部评论。

除了上述特征之外,某些实施例的应用还提供了上下文相关的帮助特征。特别地,当用户调用帮助工具时,应用显示针对用户当前正处理的项目进行了修改的帮助指示符。图5示出了经由四个阶段510-540的这样的上下文相关的帮助特征在gui100中的使用。gui包括用于调用上下文相关的帮助特征的帮助激活项目137。第一阶段示出了一个选定图像被显示于图像显示区115内的gui100。

在第二阶段520中,用户经由触摸交互来选择帮助激活项目137。如同以上所述的其他gui项目那样,帮助激活项目137是实际上能够以多种不同方式(包括各种触摸交互、光标交互等)来调用的概念上的项目。

第三阶段530示出:帮助激活项目137现在是活动的,并且帮助指示符505已经为gui项目126-128呈现。这些帮助指示符505显示不同gui项目的用途,并且在某些实施例中是可选的,以便访问具有有关所选项目的更多信息的帮助手册。第三阶段还示出了用户对曝光项目127的选择。

当用户在使用中变更活动工具集合时,应用为该活动工具集合显示帮助指示符。结果,第四阶段540示出了不同的帮助指示符集合515。这些帮助指示符515显示已经呈现于gui100内的不同的曝光调整项目的用途。用于裁切、曝光及颜色项目的帮助指示符505不再显示,因为用户已经导航到这些编辑工具集合的具体一个编辑工具之内。另外,对于可移动的工具(例如,曝光调整滑动块),某些实施例在用于移动工具时连同工具一起来移动帮助指示符。

图1-5示出了由用于查看和处理图像的某些实施例提供的新特征的各种实例。几种更详细的实施例将在下文进行描述。部分i描述图像合集以及在应用中于不同的合集分组之间导航。在部分iii描述不同的gui模式以及在不同模式下与gui间的各种交互之前,部分ii描述某些实施例的gui和图像数据结构。部分iv然后描述用于选择多个图像的不同技术以及某些实施例的应用如何同时显示多个图像。部分v描述可以应用于某些实施例中的一种或多种操作的各种操作,包括选择和取消选择操作以及标注操作。然后,部分vi描述图像共享特征,而部分vii描述某些实施例的上下文相关的帮助特征。部分viii然后描述某些实施例的媒体编辑应用的软件体系结构。最后,部分ix描述用以实现本发明的某些实施例的电子系统。

i.图像合集

在描述涉及处理图像合集的各种特征之前,本申请将描述根据本发明的某些实施例的对此类合集的创建和组织。某些实施例的图像编辑、查看和组织应用使用户能导入图像(例如,照片),将图像关联到合集(例如,相册等)内,根据图像来创建可共享的媒体(例如,日志),编辑图像等。某些实施例自动地关联共同从单独装置(即,与应用运行于其上的装置不同的装置)中导入的图像,作为一个事件。另一方面,相册是用户创建的图像合集。虽然由应用组织的媒体在本文中主要被描述为图像,但是本发明的某些实施例还组织、查看并编辑其他类型的媒体,例如,视频。

图6示出了根据某些实施例的经由四个阶段610-640的新图像合集的创建。特别地,这些阶段示出了用户选择特定的事件合集,选择在事件中的几个图像,并且然后由所选图像形成相册。出于解释起见,在该图以及本文中的其他许多图形中,用户交互被示于第一阶段,并且在gui中引起的改变被示于后续阶段。但是,本领域技术人员应当意识到,在大多数情况下,在接收用户交互与显示改变之间的延迟将几乎是即时的。

第一阶段610示出了用于显示在装置上可获得的图像的合集的合集组织gui600。gui600包括允许用户在不同类型的合集之间切换的选项卡集合605。选项卡605允许用户选择相册(用户创建的图像合集)、照片(集合来自其他各个合集的全部图像的一个合集)、事件(被共同导入图像查看应用运行于其上的装置的图像合集),以及日志(呈现并共享图像合集的具体方式)。在某些实施例中,用户能够选择不同的选项卡605以在不同类型的合集之间切换。本领域技术人员应当意识到,某些实施例包括不同的选项卡(例如,具体视频选项卡、用于其他类型的可共享合集的选项卡等)。

gui600还包括用于显示表示用户可获得的各种合集的图标的搁架(shelf)615。在某些实施例中,搁架615被显示以给出玻璃搁架的三维外观,具有反射和阴影。表示相册、照片、事件和日志的图标具有位于玻璃搁架上并投射在gui中可看见的阴影的外观。在阶段610,gui包括用户选择(在本例中为通过触摸操作)的表示称为“事件2”的图像合集的图标625。

第二阶段620示出了由用户选择图标625产生的gui650,以及在作为结果的gui650内的附加选择的结果。当特定的合集被选择时,应用显示了用于特定合集的gui。gui650包括缩略图显示区655、图像显示区660、以及将在下文参照图14进一步描述的各种其他gui项目。gui650还在其顶部显示了正在显示的合集的名称(在本例中为“事件2”)。

在该阶段中,用户在缩略图显示区655中选择了三个缩略图,并且应用在图像显示区660内显示了三个相应的图像。有关选择多个图像的不同方式的细节将在后面的部分iv内详细描述。

在第三阶段630中,用户选择设置gui项目665(例如,经由触摸交互、光标控制器等)。在某些实施例中,设置项目激活基于用户在应用中的之前动作的背景的菜单。例如,当用户激活特定的编辑工具集合时,设置菜单可以包括与所激活的编辑工具相关的选项。

但是,在这种情况下,用户处于查看模式,并且设置菜单包括“创建新相册”的选项。第四阶段640示出:用户选择该菜单选项来创建新相册。在某些实施例中,选择该选项促使应用从所选图像来创建新相册。某些实施例包括与设置菜单中的相册相关的其他选项,例如,将选定图像添加到之前创建的相册中。另外,某些实施例提供了用于创建新相册的不同机制。例如,在某些实施例中,用户能够通过合集组织gui600来创建新相册,然后通过访问不同的合集将新图像添加到相册中。

而且,在创建新相册时,某些实施例显示用户能够用以设置新相册的参数的新的窗口或对话框。例如,用户能够输入相册名称,并且在某些情况下,确定是否包括所有选定图像、在当前合集中的所有图像,或者选择来自另一合集的图像,以及其他选项。

但是,某些实施例不提供用于创建新相册的选项。相册能够从运行于同一装置上的其他应用(例如,单独的图像组织应用)中导入图像查看应用中。作为代替,用户可以根据对若干图像的选择来创建的合集的唯一形式是日志。另外,通过对图像加标记或者将图像设置为最喜爱的,用户促使图像被添加到那些标签专用的相册中。

图7在概念上示出了用于创建新的图像合集(例如,相册)的某些实施例的处理700。如图所示,处理700首先开始接收(在705)用于创建新的图像合集的命令。在某些实施例中,该命令是用户命令,例如,图6所示的“创建新相册”菜单选项,但是本领域技术人员应当意识到,命令能够通过各种不同的用户输入装置以及通过各种不同的gui结构来接收。而且,如上所述,在某些实施例中,用户能够通过请求来创建的唯一类型的合集是日志。

处理700然后识别(在710)当前选择的图像。在某些实施例中,用户能够选择在特定合集中的图像子集,并且然后指示应用来根据所选图像创建新的合集。

处理然后将(在715)所识别的图像关联为新的合集。在图6中,三个图像被示为当前选择的,并且因而这三个图像将被关联为新的合集。在某些实施例中,应用为新生成的合集创建新的合集数据结构,并且存储对合集中的每个图像的引用(例如,指针、数据库引用id等)。

图8在概念上示出了某些实施例的合集数据结构800。当用户生成新相册或者为新的事件导入新图像时,应用自动地为相册或事件创建新的合集数据结构。合集数据结构800包括合集id、合集类型、合集名称、关键图像以及对图像集合的引用。合集id是合集的唯一标识符,该标识符在引用合集时由应用使用。合集类型是合集的类型(例如,相册、事件、日志等)。在某些实施例中,应用包括“照片”合集,该合集引用被导入应用的每个图像,而不管哪些其他合集还包括该图像。合集名称是合集的用户指定的名称,该名称在合集被选择时显示于图像查看和编辑gui的顶部,并且该名称用于在合集组织gui中的合集的图标。

关键图像是由用户设置的用于表示合集的图像。在某些实施例中,应用在合集组织gui中将关键图像显示为在玻璃搁架上的合集的可选图标。另外,合集数据结构800包括对合集中的每个图像的一系列有序引用。在某些实施例中,图像的顺序确定缩略图在缩略图显示区内显示的顺序。如同将在下文描述的,某些实施例存储被导入应用中的每个图像的数据结构,并且合集引用这些数据结构。这些引用可以是指针、对数据库条目的引用等。

图9示出了经由四个阶段910-940的在图像组织、查看及编辑gui650(在下文的某些地方称为图像查看gui、图像编辑gui等)与合集组织gui600之间的导航。如图所示,在第一阶段910中,用户选择返回按钮905。在某些实施例中,该按钮促使应用返回到合集组织gui600。在某些实施例中,应用通过使图像查看gui650最小化使得它缩小为已经显示的合集的合集图标来动画显示该转变。阶段920-940示出了该动画。

在第二阶段920中,图像查看gui650已经开始收缩,使得合集组织gui600的边缘是可见的。如图所示,应用并不一定使图像查看gui650朝中心最小化,而是朝着表示在gui中显示的合集的图标的位置最小化。第三阶段930示出了在图像查看gui刚好大于合集图标625时的应用显示。最后,在第四阶段940,图像查看gui已经完全最小化并且只显示合集显示区。虽然该图示出了整个gui650(即,缩略图显示区、工具栏和图像显示区)的最小化,但是某些实施例在用户点击返回按钮时就从显示中去除缩略图显示区和工具栏,使得只有图像显示区被示为最小化的。

图10示出了在合集组织gui600内的经由四个阶段1010-1040来查看新创建的相册的用户导航。在合集组织gui600内,用户能够使用选项卡605来在相册、照片、事件和日志之间选择。如下所述,用户还能够使用扫动手势在不同的选项卡之间导航。第一阶段1010示出了在事件选项卡1015为活动时对相册选项卡1005的选择。如图所示,某些实施例在选择期间(例如,在手指正按住选项卡时,在光标处于选项卡上的情况下向下按住鼠标按钮时等)高亮显示选定的选项卡。

第二阶段1020示出:相册选项卡1005现在是活动的。在某些实施例中,应用以动画显示在不同选项卡之间的转变(即,示出事件从gui中滑出,同时具有相册的新搁架滑入显示区)。相册的搁架只包括表示“相册1”的图标1025。在该阶段,用户选择图标1025以便访问该相册。在某些实施例中,这促使到图像查看gui650的转变。

如阶段1030所示,某些实施例的应用以与图9所示的最小化动画相反的动画来显示该转变。因而,在阶段1030,图像查看gui650已经开始扩大到所选图标1025之外。第四阶段1040示出了该选择的结果,应用显示图像查看gui650。gui在顶部指示当前活动的合集是“相册1”。在缩略图显示区中,仅有的缩略图是在图6中对于“相册1”被示为选定的三个图像的缩略图。某些实施例最初在图像显示区内并不显示任何图像,而是等待用户选择一个或多个图像。但是,其他实施例最初会选择在合集的有序序列中的第一图像或合集的关键图像。而其他实施例会为每个合集存储用于指示哪个或哪些图像是合集最近一次在装置上打开时选择的持久性数据,并且使用这持久性的数据来在合集被选择时显示合集。

图11示出了根据某些实施例的经由四个阶段1110-1140的通过合集组织gui600的用户导航。如同第一阶段1110所示,应用存储关于至少9个相册的信息,包括最喜爱相册、相机胶卷相册(camerarollalbum)、带标记照片相册及其他相册。在某些实施例中,用户能够将图像标注为最喜爱的或带标记的,这会自动地将图像放置到相应的相册中。另外,某些实施例自动地将以应用运行于其上的装置捕获的任何图像添加到相机胶卷相册中。

在某些实施例中,扫动手势促使应用在选项卡之间导航。图11示出了这样的手势。如图所示,在第一阶段1110中,用户以两个手指接触触摸屏。在下一阶段1120中,用户向左移动两个手指,同时保持与触摸屏接触。如图所示,在第二搁架集合1115从gui的右侧靠近时,搁架1105开始向左移动。在第三阶段1130中,用户在滑动她的手指达至少阈值距离以被认定为扫动手势之后已经释放了与触摸屏接触的点。另外,新的搁架集合1115继续向左移动,替换搁架1105,如箭头所示。

第四阶段1140示出:搁架1115已经完全移入gui600之内。而且,照片选项卡1125现在被高亮显示于显示器中。使用这些扫动手势,用户能够容易地在不同选项卡之间的导航,不需要特别地选择选项卡。当用户导航到照片选项卡时,某些实施例显示与其他选项卡类似的搁架集合,但是显示个体图像缩略图而不是合集。这些搁架包括被导入图像查看应用内的每个图像的缩略图,这使用户能够直接导航到具体的图像(例如,用于编辑图像,共享图像等)。

虽然搁架1105在图11的第一阶段1110中被完全填充,但是应用的特定实例可以存储超过能够同时于装置上显示的最大数量的合集。正因如此,某些实施例的应用使用户能够垂直滚动搁架。图12示出了经由gui600的两个阶段1210和1220的根据某些实施例的这样的滚动技术。

在阶段1210中,用户以两个手指接触触摸屏。在下一阶段1220中,用户向上移动两个手指,同时保持与触摸屏接触。这促使搁架向上滑动通过gui600。结果,另外的搁架出现于gui600的底部并且顶部的搁架消失。由于这是平滑滚动技术,因而在某些实施例中搁架不是非连续地移动,而是可以部分地滚动到显示的顶部和底部之上或之外,这取决于用户的扫动手势的距离。

某些实施例的图像查看应用允许用户创建数量基本上不受限的相册,只要在装置上有可利用的存储容量即可。类似地,用户能够具有数量不限的事件、照片或日志。本领域技术人员应当意识到,其他手势和输入可以被用来在搁架集合之间导航。例如,某些实施例包括垂直堆叠的数量不限的搁架,使得向上扫动连续地滚动通过搁架。另外,作为对扫动输入的替换或者与其结合,某些实施例还响应于在屏幕的左侧和右侧的敲击或点击输入。

某些实施例的图像查看、编辑及组织应用运行于移动装置上。某些实施例运行于平板装置(例如,)上,而其他实施例运行于移动电话(例如,)或媒体播放器(例如,)上。某些实施例的平板实现方式的gui不同于某些实施例的移动电话/媒体播放器的实现方式的gui,但平板实现方式的其他实施例可以使用移动电话/媒体播放器gui,反之亦然。

图13示出了在肖像模式下的用于某些实施例的移动电话和媒体播放器实现方式的经由四个阶段1310-1340在图像查看和编辑gui1350与合集组织gui1300之间的导航。第一阶段1310示出了图像查看和编辑gui1350,该图像查看和编辑gui1350包括许多与图像查看和编辑gui650相同的特征。该gui将在下文更详细地描述。在该阶段中,用户选择返回按钮1305,以便导航回到合集组织gui。

第二阶段1320示出了某些实施例的合集组织gui1300。与gui600一样,该gui显示具有用于表示不同合集的图标的搁架(例如,玻璃搁架)集合。但是,尽管gui600包括不同类型的合集的选项卡集合,而gui700包括在显示的底部的可选图标集合1315。这些图标包括对相册(当前选定)、照片、事件及日志的选择。另外,显示包括设置菜单。

在该阶段1320,用户选择事件图标1325。第三阶段1325示出:事件图标1325是现在选定的,而用于不同合集(两个事件)的图标被显示于搁架上。用户选择这些事件之一,并且第四阶段1340示出了用于作为结果的选定合集的图像查看gui1350。

ii.图像查看

上述图形示出了某些实施例的图像查看gui的各种实例。图14示出了用于查看、编辑及组织图像的某些实施例的gui1400的详细视图。gui1400将部分参照图15来描述,该图15在概念上示出了用于由某些实施例的应用存储的图像的数据结构1500。

数据结构1500包括图像id1505、图像数据1510、编辑指令1515、可交换图像文件格式(exif)数据1525、标题1530、共享的图像数据1535、图像的高速缓存版本1540、在图像上的任何标签1545以及用于图像的任何附加数据1550。图像id1505是图像的唯一标识符,该标识符在某些实施例中由合集数据结构用于引用存储于合集内的图像。

图像数据1510是用于显示图像的实际完全尺寸像素数据(例如,用于图像中的每个像素的一系列颜色空间通道值或其编码版本)。在某些实施例中,该数据可以存储于图像查看、编辑及组织应用的数据库内,或者可以与其他应用的数据一起存储于同一装置上。因而,数据结构可以存储与应用关联的本地文件的指针或者能够用来查询其他应用的数据库的id。在某些实施例中,一旦应用使用日志中的图像或者对图像进行编辑,应用就自动地产生含有图像数据的图像文件的本地副本。

编辑指令1515包括有关用户已对图像施加的任何编辑的信息。以此方式,应用以非破坏性的格式来存储图像,使得应用在任何时候都能够容易地从图像的编辑版本还原为原始版本。例如,用户能够对图像施加饱和效果,离开应用,并且然后在其他时间重新打开应用并去除该效果。存储于这些指令内的编辑可以是裁切和旋转、完全图像曝光和颜色调整、局部调整,及特殊效果,以及影响图像的像素的其他编辑。某些实施例以特定的顺序来存储这些编辑指令,使得用户能够查看仅施加了某些编辑集合的不同版本的图像。

exif数据1525在该信息可用时包括由用于捕获图像的相机存储的各种信息。虽然exif是通常由数码相机使用的一种特定的文件格式,但是本领域技术人员应当意识到,可比较的信息同样可以按其他格式来获得,或者甚至可以由用户直接输入。exif数据1525包括相机设置数据、gps数据和时间戳。相机设置数据包括图像的有关相机设置的信息,只要该信息可从捕获图像的相机中获得。例如,该信息可以包括光圈、焦距、快门速度、曝光补偿和iso。gps数据1525指示图像被捕获的位置,而时间戳指示图像被捕获的时间(根据相机的时钟)。

标题1530是用户输入的关于图像的描述。在某些实施例中,该信息与图像一起被显示于图像显示区内,但是也可以被用来显示在所创建的日志中的图像上,并且如果图像被发表于社会媒体或相片共享网站时也可以使用。当用户将图像发表于这样的网站时,应用为图像生成共享图像数据1535。该信息存储位置(例如,等),以及用于访问在网站数据库中的图像的对象id。最后访问日期是应用最后使用对象id来访问对来自社会媒体或照片共享网站的图像的任何用户评论的日期和时间。

高速缓存的图像版本1540存储通常被访问并显示的图像的版本,使得应用无需重复地根据完全尺寸图像数据1510来生成这些图像。例如,应用通常会存储图像的缩略图以及显示分辨率版本(例如,针对图像显示区进行修改的版本)。某些实施例的应用每当应用编辑时就生成图像的新缩略图,替换之前的缩略图。某些实施例存储多个显示分辨率版本,包括原始图像以及图像的一个或多个编辑版本。

标签1545是应用使用户能够与图像进行关联的信息。例如,在某些实施例中,用户能够将图像标记为最喜爱的,给图像加标记(例如,用于进一步回顾),以及隐藏图像,使得当用户轮转包括图像的合集时,图像将不会显示于合集的标准的缩略图网格内并且将不会显示于图像显示区内。其他实施例可以包括附加标签。最后,图像数据结构1500包括应用可以与图像一起存储的附加数据1550(例如,位置和面部尺寸等)。

本领域技术人员应当意识到,图像数据结构1500只是应用可以用来存储图像的必要信息的一种可能的数据结构。例如,不同的实施例可以存储更多或更少的信息,按不同的顺序来存储信息,等等。

返回到图14,gui1400包括缩略图显示区1405、图像显示区1410、第一工具栏1415、第二工具栏1420和第三工具栏1425。缩略图显示区1405显示在选定合集中的图像的缩略图。缩略图是完全尺寸图像的小图示,并且在某些实施例中只表示图像的一部分。例如,在缩略图显示区1405中的缩略图全都是方形的,而不考虑完全尺寸图像的纵横比。为了确定矩形图像中的用于缩略图的那部分,应用识别图像的较小尺寸并且使用在较长方向上的图像的中心部分。例如,对于1600x1200像素的图像,应用将使用1200x1200的方形。为了进一步改进缩略图的选定部分,某些实施例识别图像中的所有面部的中心(使用面部检测算法),然后使用该位置作为缩略图部分在裁剪方向上的中心。因而,如果在理论的1600x1200图像中的面部全部位于图像的左侧,则应用将使用最左端的1200列像素而不是在每一侧切掉200列。

在确定了图像中的用于缩略图的部分之后,图像查看应用生成图像的低分辨率版本(例如,使用像素混合和其他技术)。某些实施例的应用将图像的缩略图存储为图像的高速缓存版本1540。因而,当用户选择合集时,应用识别在合集中所有图像(通过合集数据结构),并且访问在每个图像数据结构中的所高速缓存的缩略图以便显示于缩略图显示区内。

用户可以选择在缩略图显示区内的一个或多个图像(例如,通过下面的部分iv所描述的各种触摸交互)。所选择的缩略图以高亮显示或选择的其他指示符来显示。在缩略图显示区1405中,缩略图1430被选择。另外,如图所示,某些实施例的缩略图显示区1405指示在合集中的已经被加上标记的(即,具有标记设置为“是”的标签1545的)多个图像。在某些实施例中,该文本是可选的以便只显示带标记的图像的缩略图。

应用在图像显示区1410内以比相应的缩略图大的分辨率来显示所选图像。图像通常不按图像的完全尺寸来显示,因为图像通常具有比显示装置高的分辨率。正因如此,某些实施例的应用存储为适合于图像显示区而设计的图像的高速缓存版本1540。在图像显示区1410内的图像按照完全尺寸图像的纵横比来显示。当一个图像被选择时,应用在图像显示区内尽可能大地显示该图像,不剪掉图像的任何部分。当多个图像被选择时,应用通过使用对于每个图像数量都近似相同的像素按照用于保持其视觉加权的方式来显示图像,即使在图像具有不同的纵横比时也是如此。

第一工具栏1415显示题目信息(例如,在gui中示出的合集的名称、用户已经对当前选定的图像添加的标题等)。另外,工具栏1415包括第一gui项目集合1435-1438和第二gui项目集合1440-1443。

第一gui项目集合包括返回按钮1435、网格按钮1436、帮助按钮1437和撤销按钮1438。返回按钮1435使用户能够导航回到合集组织gui,如同以上的图9所示。对网格按钮1436的选择促使应用将缩略图显示区移到gui之上或之外(例如,经由滑动动画)。在某些实施例中,用户还能够经由扫动手势使缩略图显示区滑动到gui之上或之外。帮助按钮1437激活用于为用户识别出当前活动的工具集合的上下文相关的帮助特征并且给用户提供对于那些工具的用于简要描述工具的帮助指示符。在某些实施例中,帮助指示符是可选的,用于访问关于工具的附加信息。对撤销按钮1438的选择促使应用去除对图像的最近编辑,不管该编辑是裁切还是颜色调整等。为了执行该撤销,某些实施例从与图像一起存储的编辑指令集1515中去除最近的指令。

第二gui项目集合包括共享按钮1440、信息按钮1441、显示原图按钮1442和编辑按钮1443。共享按钮1440使用户能够以各种不同的方式来共享图像。在某些实施例中,用户能够将所选图像发送给在同一网络(例如,wi-fi或蓝牙网络)上的其他兼容装置,将图像上传到图像寄存或社会媒体网站,以及根据所选图像集合来创建日志(即,附加内容能够添加于其上的排列图像的表示),等等。

信息按钮1441激活用于显示关于一个或多个选定图像的附加信息的显示区。显示于所激活的显示区内的信息可以包括为图像存储的某些或全部exif数据1525(例如,相机设置、时间戳等)。当多个图像被选择时,某些实施例只显示所有选定图像共有的exif数据。某些实施例包括在信息显示区内的附加选项卡,用于:(i)显示用于根据gps数据(只要该信息可获得)来示出该一个或多个图像于何处捕获的地图以及(ii)显示对于在任何照片共享网站上的图像的评论流。为了从网站上下载该信息,应用使用为具有共享图像数据1535的图像而存储的对象id并且将该信息发送到网站。评论流以及在某些情况下的附加信息被从网站接收并且被显示给用户。

显示原图按钮1442使用户能够在图像的原始版本与图像的当前编辑版本之间切换。当用户选择该按钮时,应用显示图像的原始版本,其中没有施加任何编辑指令1515。在某些实施例中,适当尺寸的图像被存储为图像的高速缓存版本1540之一,使得它可以被快速访问。当用户再次选择按钮1442时,应用显示图像的编辑版本,其中施加了编辑指令1515。

编辑按钮1443允许用户进入或退出编辑模式。当用户选择在工具栏1420中的编辑工具集合中的一个时,编辑按钮1443使用户返回查看和组织模式,如图14所示。当用户在查看模式下选择编辑按钮1443时,应用按照工具栏1420所示的顺序返回到最后使用的编辑工具集合。也就是,在工具栏1420中的项目按照特定的顺序来排列,并且编辑按钮1443激活已经用以对所选图像进行编辑的那些项目中的最右端的项目。

如上所述,工具栏1420包括按照从左到右的特定顺序排列的5个项目1445-1449。裁切项目1445激活用于允许用户对齐扭曲的图像并去除图像的多余部分的裁切和旋转工具。曝光项目1446激活用于允许用户修改图像的黑点、阴影、对比度、亮度、高亮和白点的曝光工具集合。在某些实施例中,曝光工具集合是用于按照不同的组合来共同工作以修改图像的色调属性的滑动块集合。颜色项目1447激活用于使用户能够修改饱和度与振动(vibrancy)以及特定颜色的饱和度(例如,蓝色像素或绿色像素)和白平衡的颜色工具集合。在某些实施例中,这些工具中的一些被呈现为滑动块集合。画笔项目1448激活用于使用户能够局部地对图像进行修改的增强工具集合。通过画笔,用户能够去除红眼和污点,并且通过对图像执行擦拭动作来对图像的局部部分施加或去除饱和度和其他特征。最后,效果项目1449激活用户能够施加于图像的特殊效果集合。这些效果包括梯度、倾斜变化、非真实感去饱和度效果、灰度效果、各种滤波器等。在某些实施例中,应用将这些效果呈现为从工具栏1425中扇出(fanout)的项目集合。

如上所述,ui项目1445-1449按照特定的顺序来排列。该顺序遵循用户用以最常见地施加五种不同类型的编辑的顺序。因此,在某些实施例中,编辑指令1515按照这种相同的顺序来存储。当用户选择项目1445-1449之一时,某些实施例仅将来自所选工具的最左端的工具的编辑施加于所显示的图像(但其他编辑保持为存储于指令集1515内)。

工具栏1425包括gui项目集合1450-1454和设置项目1455。自动增强项目1450自动地对图像执行增强编辑(例如,移除明显的红眼、平衡颜色等)。旋转按钮1451旋转任何选定图像。在某些实施例中,每当旋转按钮被按下时,图像沿特定的方向旋转90°。在某些实施例中,自动增强包括被设置于指令集1515内的预定的编辑指令集。某些实施例执行对图像的分析并且然后基于该分析来定义指令集。例如,自动增强工具将尝试检测在图像中的红眼,但是如果没有检测到红眼则将不会生成指令来校正它。类似地,自动颜色平衡将基于对图像的分析。由旋转按钮产生的旋转同样被存储为编辑指令。

标记按钮1452将任何选定图像标注为带标记的。在某些实施例中,合集中的带标记图像能够在没有任何无标记图像的情况下显示。最喜爱按钮1453允许用户将任何选定图像标记为最喜爱的。在某些实施例中,其会将图像标注为最喜爱的,并且还将图像添加到最喜爱图像的合集中。隐藏按钮1454使用户能够将图像标注为隐藏的。在某些实施例中,隐藏图像将不会显示于缩略图显示区内,和/或在用户在图像显示区内轮转合集中的图像时将不会显示。如图15所示,这些特征中的许多特征被存储为在图像数据结构中的标签。

最后,设置按钮1455激活用于根据当前活动的工具集合来提供不同的菜单选项的上下文相关的菜单。例如,在查看模式中,某些实施例的菜单提供用于创建新相册、为相册设置关键图像、将设置从一个图像复制到另一个图像的选项,以及其他选项。当不同的编辑工具集合为活动时,菜单提供与特定的活动工具集合相关的选项。

本领域技术人员应当意识到,图像查看和编辑gui1400只是用于图像查看、编辑及组织应用的许多可能的图形用户界面中的一个实例。例如,各种项目能够位于不同的区域内或者处于不同的顺序,并且某些实施例可以包括具有附加或不同功能的项目。某些实施例的缩略图显示区可以显示与其相应的完全尺寸图像的纵横比匹配的缩略图等。

iii.在不同gui模式下的交互

在上文,图14示出了图像查看、编辑及组织应用的特定的图形用户界面1400。在某些实施例中,应用提供了多种gui模式,其中的gui1400只是一种。这些模式可以区分肖像取向与风景取向,左手用户与右手用户,或者其他因素。某些实施例具有三种不同的模式——肖像、左手风景和右手风景。这些模式给用户呈现相同的gui项目和显示区,但是按照不同的方式来布置。

a.左手gui与右手gui

某些实施例提供了用户能够切换的左手gui和右手gui两者。不同的选项可以呈现于肖像和风景两种模式中,或者只呈现于风景模式中。在某些实施例中,为了在左手gui与右手gui之间切换,用户在gui内移动具体的gui项目(例如,缩略图显示区)。作为将具体的gui项目从第一位置移动到第二位置的结果,应用从提供右手gui切换为提供左手gui,或者相反。在某些实施例中,两种gui间的差异不仅在于具体gui项目的位置,而且还有附加的gui项目集合的位置和顺序(例如,从左到右的顺序)。

图16示出了经由用户用以将缩略图显示区1605从gui的左侧移动到右侧以便从右手模式切换为左手模式的四个阶段1610-1640的gui1600。gui1600包括缩略图显示区1605、图像显示区1615、第一gui项目集合1625(网格开启/关闭,帮助和撤销按钮)、返回按钮1635、第二gui项目集合1645(共享、信息和切换原图按钮)、编辑按钮1650、第三gui项目集合1655(编辑工具激活按钮)以及设置菜单按钮1660。

第一阶段1610示出了在右手模式中的gui1600。在右手模式中,缩略图显示区1605位于gui的左侧。返回按钮1635和第一gui项目集合1625位于上方工具栏的左侧,编辑按钮1650和第二gui项目集合1655位于上方工具栏的右侧,第三gui项目集合1655位于左下方(在缩略图显示区下方),而设置菜单按钮位于右下方。该阶段另外还示出:用户将手指放置于缩略图显示区上以便执行在显示区上的触摸手势。在某些实施例中,缩略图显示区包括能够被选择以便移动显示区的标题区。

第二阶段1620示出:用户正处于以一个手指执行拖拽(或扫动)手势之中。为了执行这样的手势,用户将手指在缩略显示区内按下并且将手指沿着触摸屏向右滑动,不释放接触。在用户在触摸屏上移动其手指时,应用与该手指一起移动缩略图显示区1605。

第三阶段1630示出:用户已经将触摸屏沿着触摸屏进一步向右移动。另外,该图还示出:在用户释放与屏幕的接触时,缩略图显示区1605对齐到gui1600的右边缘。在某些实施例中,当用户在gui的左侧释放与显示区的接触时,缩略图显示区自动地对齐回到该侧,并且对于右侧同样如此。

第四阶段1640示出了在用户已经释放了缩略图显示区之后的在左手模式中的gui1600。在左手模式中,大部分的gui工具都具有切换侧。设置菜单按钮1660现在位于左下方,而第三gui项目集合1655位于右下方。第三gui项目集合1655保持它们的从左到右的顺序,从裁切激活按钮到效果激活按钮。这些项目按照用户将用以对图像进行编辑的典型顺序来排列(首先裁切和旋转图像,然后调整曝光和颜色,接着使用画笔来修饰,并且最后对图像施加任何特殊效果)。正因如此,这些工具在两种gui模式中按照相同的顺序来排列。

但是,在上方工具栏中的工具集合切换位置并反转顺序。返回按钮1635和编辑按钮1650被分别固定(除了整个工具栏向左滑动以适应缩略图显示区1605之外)为最左端的按钮和最右端的按钮。但是,第一gui项目集合1625和第二gui项目集合1645切换位置并反转它们的顺序。第一gui项目集合1625现在与编辑按钮1650相邻地设置,但按照相反的从左到右的顺序。类似地,第二gui项目集合1645现在与返回按钮1635相邻地设置,同样按照相反的从左到右的顺序。由此,这些没有按照特定的顺序排列的项目保持它们与缩略图显示区1605的相对位置。

在某些实施例中,gui还包括自动增强、旋转、标记、最喜爱及隐藏按钮,如图14所示。在某些这样的实施例中,这些gui项目在处于左手模式时保持于gui的底部中间位置并且处于相同的顺序。但是,在其他实施例中,在左手模式下,自动增强按钮在该项目集合的右侧,而隐藏按钮在左侧。

虽然该图示出了用户以左手进行拖拽手势以便切换为左手gui,但是某些实施例允许用户以任意手的一个手指(或者以不同的手势,例如,双指拖拽、扫动等)沿任一方向拖拽缩略图显示区。在这个意义上,gui并不响应于用户实际上使用哪只手,而是响应于缩略图显示区的位置。另一方面,某些实施例的应用能够识别出用户正在使用哪只手(例如,基于触摸屏的不同接触的相对位置)并因此切换显示。其他实施例能够针对某些手势来区分手(例如,所有五个手指同时触摸屏幕的中心)并且使用这些手势作为用于从一种模式切换到另一种模式的命令。

除了具有左手和右手gui模式之外,某些实施例按照肖像和风景模式来不同地显示图像查看和编辑gui。在某些实施例中,与左手或右手风景模式相比,缩略图显示区当处于肖像模式时位于图像的不同区域内。例如,在某些实施例中,应用将缩略图显示区显示于肖像gui的底部。

某些实施例基于最近使用的风景模式来为应用确定各种gui项目在肖像模式中的位置。例如,某些实施例运行于具有内置加速计或陀螺仪的装置上,该内置加速计或陀螺仪识别装置是垂直取向还是横向取向,并且通过操作系统将该信息提供给应用。当用户将装置重定向为肖像模式时,某些实施例基于gui在重定向之前被设置为的风景模式来对齐图像查看应用的gui元件。

图17-19示出了在肖像和风景两种模式下的某些实施例的左手和右手gui模式。这些图不是要示出图14及上述其他附图所示的某些实施例的gui实现方式,而是示出用于某些实施例的移动电话和媒体播放器的实现方式的图像查看和编辑gui1700。

图17示出了经由在图像查看应用运行于其上的装置从肖像模式旋转为风景模式时的三个阶段1710-1730的gui1700。如图17所示,gui1700包括缩略图显示区1705、图像显示区1715、第一工具栏1725(位于gui的底部),以及第二工具栏1727(位于gui的顶部)。

第一工具栏1725包括自动增强按钮1730、旋转按钮1735、标记按钮1740、最喜爱按钮1745、隐藏按钮1750、设置按钮1755及工具箱按钮1760。各种gui项目1730-1755按照与以上参照图14所描述的方式相同的方式来操作。某些实施例的工具箱1760允许用户访问各种不同的编辑工具集合。在某些实施例中,当用户选择工具箱1760时,项目1730-1750消失并被与项目1445-1449(裁切项目、曝光项目、颜色项目、画笔项目及效果项目)相似的gui项目代替。

第二工具栏1727包括返回按钮1765、网格按钮1770、显示原图按钮1780、共享按钮1785和编辑按钮1790。这些gui项目同样按照与以上参照图14所描述的方式相同的方式来操作。在某些实施例中,帮助特征和撤销特征能够通过设置项目1755来访问,而不是具有单独的项目。

图17的第一阶段1710示出了在肖像模式下的gui1700,应用运行于其上的装置保持处于垂直位置。在第二阶段1720中,用户开始使装置转为横向。直到第三阶段1730,当装置已经旋转了完整的90°时,应用才从以肖像模式来显示gui切换为以风景模式来显示gui。在某些实施例中,装置含有加速计或陀螺仪,通过该加速计或陀螺仪装置的操作系统确定装置是处于肖像模式还是处于风景模式。该确定被传递给应用,该应用输出适当的gui。

第三阶段1730示出了某些实施例的风景模式gui1700。gui包括在上方和下方工具栏中的相同ui项目集合,但这些项目更为分散。另外,缩略图显示区1705在显示的左侧而不是显示的底部。在这种情况下,肖像模式gui处于右手模式(即,在阶段1710和1720中),并且因此当应用切换为风景时,它对gui1700使用右手风景模式。

图18示出了经由用户用以将缩略图显示区1705从gui的左侧移动到gui的右侧以便从右手模式切换为左手模式的四个阶段1810-1840的gui1700。经由前三个阶段1810-1830用来拖拽缩略图显示区1705的触摸手势是与以上在图16中示出的手势相似的手势。第四阶段1840示出了在左手模式下的gui1700,缩略图显示区1705在gui的右侧。在这种实现方式中,应用反转在工具栏1725中的gui项目1730-1760的顺序,工具箱图标1760现在在右侧而设置图标1755在左侧,并且自动增强、旋转、标记、最喜爱及隐藏项目同样反转。

图19示出了经由在用户使应用运行于其上的装置旋转回肖像模式时的三个阶段1910-1930的gui1700。但是,在这种情况下,应用在左手模式下,同时在风景模式下操作。结果,在阶段1930,在工具栏1725中的gui项目与图17所示的右手肖像模式相比被反转。

b.与缩略图显示区的交互

在左手或右手模式中,图像查看应用允许与缩略图显示区(以下也称为缩略图网格)的各种交互。用户能够改变缩略图显示区的尺寸,改变缩略图的列数,并且滚动缩略图。图20在概念上示出了用于示出在某些实施例的图像查看gui中的状态以及缩略图显示区的状态变化的状态图2000。本领域技术人员应当意识到,该状态图并没有包含与缩略图显示区的各种可能的交互。例如,状态图并没有覆盖滚动缩略图或者对缩略图的选择。而且,虽然该状态图指示左手和右手gui模式的不同状态,但是出于简明性起见,对于一种模式示出的状态的等价状态对于另一种模式将被省略。状态图2000将参照图21-28来描述,这些图21-28示出了在左手和右手两种模式下gui1600的各种交互。

当用户不与gui交互时,它将要么处于状态2005(右手模式,缩略图网格在gui的左侧)要么处于状态2050(左手模式,缩略图网格在gui的右侧)。如同以上的图16所示的,用户能够通过将缩略图网格从gui的左侧拖拽至gui的右侧而促使从状态2005到状态2050的转变。相反地,当用户将缩略图网格从gui的右侧拖拽到左侧时,gui从状态2050转变为状态2005。

在某些实施例中,用户能够通过拖拽在缩略图网格与图像显示区之间的界线(或接缝)来增大和减小缩略图网格的列的宽度和/或数量。状态图2000示出了用于描述在gui处于右手模式时的此类输入事件的状态(状态2005),但是本领域技术人员应当意识到,当处于左手模式时,相反的移动方向将被施加于另外的等价状态(状态2050)。在某些实施例中,当应用被初始化时,缩略图网格具有两个列的默认宽度。

当在状态2005中时,当用户选择在缩略图网格与图像显示区之间的界线并向右移动时,gui转变为状态2010以显示逐渐变宽的缩略图网格。在某些实施例中,用户通过在触摸屏上将单个手指放置于界线上来选择界线(即,使得接触区包括缩略图网格的一部分和图像显示区的一部分两者)。只要用户继续向右移动其手指,缩略图网格持续加宽。如果用户释放界线(例如,通过将她的手指从触摸屏上移开),则gui返回到状态2005。

当用户已经将界线移动了阈值距离时,应用转变为状态2015以添加一列缩略图。这促使缩略图在缩略图网格中重新排列。某些实施例的应用使缩略图排序为(当网格具有两个列时):前两个在顶行,随后两个在第二行等。当列数扩大到3时,来自第二行的第一缩略图向上移动到顶行,来自第三行的两个缩略图移动到第二行等。

图21示出了用户经由gui1600的四个阶段2110-2140增大缩略图显示区的尺寸。如图所示,在第一阶段2110中,用户将手指放置于在缩略图显示区1605与图像显示区1615之间的界线上。在某些实施例中,应用并不实际画出界线或接缝,而是界线仅仅是由于在缩略图显示区与图像显示区之间的颜色变化的结果而为可见的。但是,为了清晰起见,这些图示出了这样的界线。

在第二及第三阶段2120和2130中,用户向右拖拽界线。在第四阶段2140,界线已经被移动得足够远以使缩略图重新排列到第三列内。如图所示,云的缩略图2105向上移动到顶行,并且其他缩略图也重新排列。该图示出了(如同状态图2000那样)在第三列被创建之前扩大的缩略图显示区1605(并且图像显示区相应地缩小)。但是,某些实施例只按照不连续的量来移动界线——即,一旦用户的手指在屏幕上移动了阈值距离,应用就自动地将缩略图显示区的宽度由两列宽度改变为三列宽度。也就是,在用户将其手指从界线上移开时,gui保持为静态的,直至达到阈值移动,在该点,随着界线向右移动了固定量,缩略图显示区动态地重新排列以添加另一列,由此减小图像显示区的尺寸。

返回到状态图2000,在添加了缩略图的列之后,如果触摸移动继续进行并且缩略图网格尚未达到最大尺寸,则gui转变回到状态2010,或者如果达到了最大列数则转变为状态2020。当达到最大列数时,应用停止允许网格区的扩大(在状态2020)。在某些实施例中,应用只允许缩略图显示区具有一列、两列或三列缩略图;其他实施例(例如,在较小装置上的那些实施例)只允许一个或两个列。在这三种状态中的任一状态,如果用户释放界线(即,通过移除触摸输入),则应用转变回到状态2005。

相似的状态变化在用户朝着屏幕的边缘来拖拽缩略图显示区与图像显示区之间的界线时发生。此外,在图20中示出了在gui处于右手模式时的这些状态变化,但是同样可应用于左手模式下的gui(朝着相反方向移动)。

当在状态2005中时,当用户选择在缩略图网格与图像显示区之间的界线并向左移动时,gui转变为状态2010以显示逐渐变窄的缩略图网格。在某些实施例中,用户通过在触摸屏上将单个手指放置于界线上(即,使得接触区包括缩略图网格的一部分和图像显示区的一部分两者)来选择界线。只要用户继续向左移动其手指,缩略图网格就持续变窄。如果用户释放界线(例如,通过将她的手指从触摸屏上移开),则gui返回到状态2005。

当用户已经将界线移动了阈值距离时,应用转变为状态2030以去除缩略图的列。这促使缩略图在缩略图网格中重新排列。某些实施例的应用使缩略图排序为(当网格具有两个列时):前两个在顶行,随后两个在第二行等。当列数减小到1时,来自顶行的第二缩略图移到第二行,在第二行内的第一缩略图移到第三行,等等。

图22示出了用户经由gui1600的四个阶段2210-2240来减小缩略图显示区的尺寸。如图所示,在第一阶段2210中,用户将手指放置于在缩略图显示区1605与图像显示区1615之间的界线上。在某些实施例中,应用并不实际画出界线或接缝,而是界线仅仅是由于在缩略图显示区与图像显示区之间的颜色变化的结果而为可见的。但是,为了清晰起见,这些图示出了这样的界线。

在第二阶段2220中,用户已经开始向左拖拽界线。在该图中,一旦界线开始侵占第二列,应用就将缩略图重新排列成单个列。如图所示,皮艇的缩略图2205向下移动到第二行,并且其他缩略图也重新排列。在第三阶段2230中,用户继续向左拖拽界线。最后,在第四阶段2240,缩略图显示区1605已经达到其最小宽度并且无法持续缩小。该图(和状态图2000)示出了按连续方式缩小的缩略图显示区1605(并且图像显示区相应地减小)。但是,如同以上所述的缩略图显示区的增大那样,某些实施例只按照不连续的量来移动界线——即,一旦用户的手指在屏幕上移动了阈值距离,应用就自动地将缩略图显示区的宽度由两列宽度改变为一列宽度。

返回到状态图2000,在移除了缩略图的列之后,如果触摸移动继续进行并且缩略图网格尚未达到最大尺寸,则gui转变回到状态2025,或者如果达到了最大列数,则gui转变为状态2035。当达到最大列数时,应用停止允许网格区的扩大(在状态2020)。在某些实施例中,应用只允许缩略图显示区具有一列、两列或三列缩略图;其他实施例(例如,在较小装置上的那些)只允许一个或两个列。在这三种状态中的任一状态,如果用户释放界线(即,通过移除触摸输入),应用转变回到状态2005。另外,如果用户反转在界线上的触摸输入的移动方向,则gui还能够从扩大状态2010转变为状态2025(或相反)。

除了修改缩略图显示区的尺寸和列数之外,某些实施例还允许用户将缩略图显示区滑动到gui之外以及返回到gui上。在某些实施例中,这可以经由扫动手势或者gui项目的选择以及其他gui交互(例如,热键或热键集、菜单选项的选择等)来完成。状态图2000在概念上示出了在左手gui的环境下的这些交互(缩略图显示区在右侧),但是这些交互同样可应用于右手gui(方向反转)。

如图所示,在gui处于状态2050(左手模式,缩略图网格被显示)时,当用户在网格上执行右向扫动手势或者选择网格按钮ui项目时,gui转变为状态2055以使网格滑离显示的右侧。一旦网格滑到显示之外,gui就转变为状态2060以在没有缩略图网格的情况下按左手模式来显示gui。

图23示出了用于经由四个阶段2310-2340从处于右手gui模式下的gui1600中去除缩略图显示区1605的扫动手势。如图所示,在第一阶段2310,用户开始以一个手指在缩略图显示区1605上接触触摸屏(但也可以使用具有不同数量的接触点的其他扫动手势或者其他手势)。第二阶段2320示出了用户向左移动其手指,促使缩略图显示区沿该方向滑动。在第三阶段2330中,用户在缩略图显示区1605继续向左滑动到gui之外时已经释放了扫动手势。第四阶段2340示出:缩略图显示区不再显示于gui内,并且图像显示区1615已经扩大。基于各种用户界面工具的位置,用户能够容易地辨别出gui仍然处于右手模式。

在某些实施例中,应用需要用户的手指保持与触摸屏接触达特定的阈值距离和/或以阈值速度来移动以便被认定为扫动手势。但是,在某些实施例中,这种关于是否将输入认定为扫动手势的判断由图像查看应用运行于其上的装置的操作系统作出,而不是由应用自身作出。扫动手势和位置由操作系统传递给应用,该应用然后将该扫动手势转译成用于将缩略图网格滑动到gui之外的指令。

图24示出了用于经由四个阶段2410-2440从处于左手模式下的gui1600中去除缩略图显示区1605的相似扫动手势。这些阶段与图23的阶段类似。如图所示,在第一阶段2410,用户开始以一个手指在缩略图显示区1605上接触触摸屏(但是也可以使用具有不同数量的接触点的其他扫动手势或者其他手势)。第二阶段2420示出了用户向右移动其手指,促使缩略图显示区开始沿该方向滑动。在第三阶段2430中,用户已经在缩略图显示区1605继续向右滑动到gui之外时释放了扫动手势。第四阶段2440示出:缩略图显示区不再显示于gui内,并且图像显示区1615已经扩大。基于各种用户界面工具的位置,用户能够容易地辨别出gui仍然处于左手模式。

如图20所示,当用户选择促使缩略图显示区滑动到gui之上和之外的网格按钮时,某些实施例同样从状态2050转变为状态2055并且然后转变为2060。图25示出了经由四个阶段2510-2540在gui1600中对这样的gui项目2505的选择。如图所示,在第一阶段2510中,用户敲击网格按钮2505。如同扫动手势那样,在某些实施例中,装置的操作系统将屏幕接触信息转译成敲击手势和位置并且将该信息传递给图像查看应用。第二阶段2520和第三阶段2530示出了缩略图显示区1605滑动到gui之外。阶段2540所示的作为结果的gui与在图23的结束时的作为结果的gui相同,其中具有扩大的图像显示区1615。

在gui处于状态2060(左手模式,无缩略图网格)的情况下,当用户执行从gui的右边起的左向扫动手势或者选择网格按钮ui项目时,gui转变为状态2065以使网格从右侧滑动回到显示上。一旦网格滑动回到显示上,gui就转变回到状态2050以显示左手模式下的gui,其中存在缩略图网格。

图26示出了用于在右手gui模式下经由四个阶段2610-2640使缩略图显示区1605返回到gui1600的扫动手势。如图所示,在第一阶段2610,用户开始在gui的左边缘附近以一个手指接触触摸屏(但是也可以使用具有不同数量的接触点的其他扫动手势或者其他手势)。不同的实施例使用不同的阈值来确定触摸接触需要为多近以致于被认为是接近于边缘,从而使缩略图显示区滑动回到gui上。第二阶段2620示出了用户向右移动其手指,促使缩略图显示区1605开始沿该方向滑动回到gui上。在第三阶段2630中,用户在缩略图显示区1605继续向右滑动到gui上时已经释放了扫动手势。第四阶段2640示出:缩略图显示区1605在右手模式下完全呈现于gui中。

图27示出了用于在左手gui模式下经由四个阶段2710-2740使缩略图显示区1605返回到gui1600的相似扫动手势。如图所示,在第一阶段2710,用户开始在gui的右边缘附近以一个手指接触触摸屏(但是也可以使用具有不同数量的接触点的其他扫动手势或者其他手势)。不同的实施例使用不同的阈值来确定触摸接触需要为多近以致于被认为是接近于边缘,从而使缩略图显示区滑动回到gui上。第二阶段2720示出了用户向左移动其手指,促使缩略图显示区1605开始沿该方向滑动回到gui上。在第三阶段2730中,用户在缩略图显示区1605继续向左滑动到gui上时已经释放了扫动手势。第四阶段2340示出:缩略图显示区1605在左手模式下完全呈现于gui中。

如图20所示,当用户选择促使缩略图显示区滑动到gui之上和之外的网格按钮时,某些实施例还从状态2060转变为状态2065,并且然后转变为2050。图28示出了在gui处于右手模式的情况下经由四个阶段2810-2840对gui1600中的gui项目2505的选择。如图所示,在第一阶段2810中,用户敲击网格按钮2505。如同扫动手势那样,在某些实施例中装置的操作系统将屏幕接触信息转译成敲击手势和位置,并且将该信息传递给图像查看应用。第二阶段2820和第三阶段2830示出了缩略图显示区1605滑动回到gui上。在阶段2840中示出的作为结果的gui与在图26结束时的作为结果的gui相同,缩略图显示区1605出现于显示的左侧。

以上描述和图形突出了在左手和右手模式下与gui交互的各个方面。另外,在风景模式(不管是右手还是左手)与肖像模式之间存在某些差异。一个这样的差异涉及缩略图显示区的位置和滚动。

图29示出了经由gui1600的四个阶段2910-2940用户滚动缩略图显示区1605。在第一阶段2910中,用户已经开始在缩略图显示区1605之上以一个手指接触触摸屏。如同第二阶段2920所示,用户向上移动手指,同时保持与触摸屏接触。这具有促使缩略图显示区中的缩略图向上滑动的作用,使得顶部的缩略图从屏幕上消失并且另外的缩略图出现于底部。在阶段2930,用户继续该运动以继续滚动缩略图。第四阶段2940示出:用户已经释放了拖拽操作并且缩略图已经停止滚动。在某些实施例中,取决于拖拽/扫动手势的速度,缩略图可以在用户释放手势之后继续滚动(即,冲量滚动)。由于全部合集会含有数量有限的图像,因而最终缩略图将达到终点并停止滚动。而且,虽然该图仅示出了向下滚动(经由上向触摸手势),用户还能够通过向下拖拽缩略图显示来向上滚动。

上述图形示出了在左手和右手风景模式下的gui。另一方面,图30-32示出了在肖像模式下的某些实施例的gui3000。如图30所示,gui3000包括缩略图显示区3005、图像显示区3015、第一gui项目集合3025、第二gui项目集合3035、第三gui项目集合3045、返回按钮3050、编辑按钮3055及设置菜单激活项目3060。这些是与以上参照图16的gui1600所描述的项目相同的项目。

如这些图形所示,应用显示了与在风景gui1600的右手模式下的位置相同的位置上的gui项目3025、3035和3045-3060(即,编辑激活gui项目3025在左下方,返回按钮3050和第二gui项目集合3035在左上方等)。当处于肖像模式时,某些应用不提供从左手模式到右手模式的切换机制,因为缩略图显示区3005无论如何都位于gui的底部。如上所述,其他实施例可以响应于指示用户的用手习惯的动作,例如,五指同时敲击(与右手相比,相对位置对于左手是不同的)。如上所述,某些实施例基于最近使用的风景模式来为应用确定在肖像模式下的各种gui项目的位置。

图30示出了在用户经由四个阶段3010-3040来滚动缩略图显示区内的合集的缩略图时的gui3000。如图所示,在肖像模式中,应用使缩略图显示区3005位于gui的底部,但在其他实施例中缩略图显示也可以位于gui的顶部。缩略图显示区3005横越gui的宽度,具有固定列数的缩略图(在本例中为5个)。在该图中,缩略图显示区具有两个缩略图的高度。

在第一阶段3010中,用户以一个手指来接触缩略图显示区。如同第二阶段3020所示,用户已经开始在缩略图显示区上向上滑动手指。这促使缩略图向上滑动通过缩略图显示区3005,新的缩略图开始出现于显示区的底部。第三阶段3030示出:用户已经继续向上滑动她的手指,缩略图同样一起移动。在第四阶段3035中,用户已经释放了与触摸屏的接触,并且因此缩略图不再移动(但是在某些实施例中,用户能够设置应用或装置基于手势的速度在扫动手势之后继续滚动)。

图31示出了经由肖像gui3000的四个阶段3110-3140对缩略图显示区3005的尺寸的修改。如同在风景模式中,用户能够拖拽在缩略图显示区3005和图像显示区3015之间的界线以便修改缩略图显示区的尺寸。但是,然而在风景模式中,该界线垂直于滚动的方向移动(并且因而在超过阈值以及添加或减少列时导致缩略图的重新排列),在肖像模式中的界线平行于滚动的方向而移动。正因如此,大部分情况下,缩略图显示区都能够按连续的方式来修改,而不重排缩略图,而不是在增加或减少列时具有非连续的跳跃。

第一阶段3110示出了缩略图显示区具有大约两个缩略图的高度的gui3000。在第二阶段3120中,用户将手指放置于缩略图显示区3005与图像显示区3015之间的界线上,并且开始向下拖拽界线。在这种情况下,缩略图连同界线一起移动(即,界线对缩略图的关系不改变)。在其他实施例中,缩略图在对界线的此类修改期间保持为静态的,并且界线移动到缩略图之上。当用户向上移动界线并且达到缩略图的顶行时,某些此类实施例则开始与界线一起向上移动缩略图以便防止间隙出现于缩略图显示区的顶部。

第三阶段3130示出:用户继续向下拖拽界线,同样使缩略图进一步向前滑动。在最后阶段3140,缩略图显示区3005具有仅为一行的高度。在某些实施例中,当缩略图显示区在肖像模式中被减少到只有一行缩略图时,应用自动地防止缩略图显示区被减小尺寸(但是用户仍然能够敲击网格按钮或者使用扫动手势来完全去除缩略图显示区)并且将滚动的方向从垂直修改为水平。应用按照缩略图在当前所选的合集中存储的顺序将缩略图重排成单个行,但是所显示的缩略图被用户看起来可以是相同的,直到用户开始滚动。

图32示出了在尺寸向下调整到一个行时经由gui3000的四个阶段3210-3240进行的缩略图显示区的水平滚动。第一阶段3210示出了状态与图31的阶段3140相同的gui3000,缩略图显示区3005具有一个行的高度。如图所示,用户已经开始以一个手指来接触缩略图显示区。用户在第二阶段3220中开始向左移动其手指,并且在第三阶段3230中继续该移动。该移动的结果是:缩略图向左滚动通过缩略图显示区3005,某些缩略图向左滚动离开gui并且新的缩略图从右侧进入。在某些实施例中,滚动在用户达到合集的终点时停止,而其他实施例按照连续滚动的方式使缩略图绕回。第四阶段3240示出:用户已经释放了与触摸屏的接触,并且缩略图现在是静止的。

图33示出了在某些实施例的移动电话和媒体播放器gui1700的缩略图显示区中用户滚动图像。在第一阶段3310中,第一缩略图3305被选择,并且相应的图像3315已经显示于图像显示区1715内。但是,用户当前正执行在图像显示区上的向左的扫动手势,开始显现合集中的下一图像。第二阶段3320示出了该扫动手势的结果,图像3325现在正被显示并且相应的缩略图3335已被选择。虽然在前面的图形中没有示出,但是在某些实施例中,在较大的(例如,平板)装置上的应用的用户同样可以使用相似的扫动手势(右向和左向两种)来快速地浏览合集中的图像。以扫动手势来浏览所选图像集合将同样在后面于部分v内描述。

第二至第四阶段3320-3340示出了用户以扫动手势横向滚动通过缩略图显示区1705。如图所示,用户使手指横向扫动穿过缩略图显示区,并且缩略图滑过,如同以上的图32那样。

虽然前面的图形示出了使用触摸屏手势(包括多点触摸手势)来滚动通过缩略图显示区(不管是在肖像模式中还是在风景模式中),但是本领域技术人员都应当意识到,所描述的图29-33的特征(以及本文通篇示出的其他特征)可以按照其他方式来执行——例如,使用光标控制装置(这可以包括按钮点击、光标控制器的移动以及通过光标控制器的触摸输入的组合)、键盘等。

c.缩放工具

这部分的分部a描述了具有左手和右手模式的不同gui的应用,在这些gui中,应用在模式切换时修改某些gui元件的位置和顺序,同时将其他gui元件保持于原位。另外,某些实施例不同地(例如,按照不同的取向)激活某些gui工具,这取决于gui是在左手模式中还是在右手模式中。一种这样的工具是某些实施例的缩放工具,该缩放工具按照不同的取向来显示并且不同地响应于某些手势,这取决于gui的哪种模式是活动的。

图34在概念上示出了用于调用该缩放工具的某些实施例的处理3400。处理3400将参照图35和36来描述,该图35和36示出了对在某些实施例的右手及左手媒体编辑和查看gui中的缩放工具的调用。某些实施例的图像查看、编辑及组织应用响应于通过应用的用户界面接收到的特定的用户输入(例如,触摸)手势来执行处理3400。但是,某些实施例(例如,应用的某些移动电话和媒体播放器的实现方式)不包括这样的缩放工具。

如图所示,处理首先开始在查看模式下接收(在3405)对在图像显示区内的图像的两个单独的触摸输入。在某些实施例中,当图像显示区显示一个或多个图像并且编辑工具集合中的一个编辑工具(例如,裁切、曝光、颜色、画笔或特殊效果工具)已经被激活时,应用处于查看模式中。某些实施例在两个单独的触摸输入至少部分一致时将该两个单独的触摸输入识别为调用缩放工具。也就是,两个单独的输入不需要同时接触触摸屏(即,用户能够将其拇指放置于屏幕上,然后一秒钟后以其食指接触屏幕以便调用缩放工具,只要拇指同样保持于屏幕上即可)。其他实施例对其间第一及第二触摸输入可以被接收的时长进行约束(例如,0.5秒、1秒等)。另外,某些实施例只响应于在阈值距离(例如,绝对距离(例如,3英寸)或者相对于图像尺寸的距离)内的触摸输入来激活缩放工具。

而且,某些实施例区分双指手势与两个单独的手势。多点触摸装置能够识别出用户是已经将一个手指放置于触摸屏上的某一位置还是多个手指一起放置(例如,用于某些扫动手势)。这些不同的触摸手势在某些实施例中由装置的操作系统检测出并发送给应用。当应用从操作系统中接收到在所显示的图像上的不同位置的两个单独的手势时,应用调用缩放工具。

响应于接收到两个单独的触摸输入,处理3400输出(在3410)与缩放工具显示关联的声音效果。在某些实施例中,声音效果模仿相机快门打开的声音。除了其他用途外,声音效果还为用户指出缩放工具已激活。另外,某些实施例在由缩放工具覆盖的区域内显示给出相机快门打开的外观的动画。虽然处理3400在显示缩放工具之前示出了应用输出声音效果,但是本领域技术人员应当意识到,这是概念上的处理并且声音效果可以与缩放工具的显示并行输出。

该处理还识别了(在3415)在两个单独的触摸输入之间的中点。如上所示,在某些实施例中,应用响应于接收自用户的触摸输入而接收来自操作系统的手势信息。手势信息包括确定每个手势中心的位置(例如,屏幕像素坐标)。某些实施例的应用识别出连接每个手势的中心坐标的线的中点(例如,平均x坐标和平均y坐标)。

然后,该处理确定(在3420)gui是否处于右手模式。如同以上参照图16所描述的,图像编辑应用提供了用户能够切换的右手gui和左手gui。在这些实施例的某些实施例中,图像编辑应用存储用于指示gui是处于右手模式还是处于左手模式的参数。当用户在两种模式之间切换(例如,通过移动缩略图显示区)时,应用切换参数。在这些实施例中,处理通过检查该存储参数来确定gui是否处于右手模式中。在其他实施例中,应用使用缩略图显示区的位置(或其他gui项目)来确定应用当前是处于左手模式还是处于右手模式。

如果gui处于右手模式,则处理显示(在3425)中心位于所识别的中点的缩放工具,放大信息显示于缩放环的左侧。然后处理结束。在某些实施例中,缩放工具是呈现为中心位于两个触摸输入之间的所识别的中点的椭圆(例如,圆形)的缩放环。但是,其他实施例使用不同的形状(例如,方形、六边形等)。在某些实施例中,放大信息给用户指示在gui控件内的图像的缩放级别。

图35示出了通过gui3500在gui处于右手模式的情况下按四个阶段3505-3520来调用和取消调用圆形缩放工具的实例。图35的第一及第二阶段3505和3510示出了对缩放工具的调用,而第三及第四阶段3515和3520示出了对缩放工具的取消调用。

如图所示,gui3500包括位于gui3500的左侧的缩略图显示区3530、图像显示区3545及工具栏3540。应用在图像显示区3545内显示图像3555。如同第一阶段3505所示,缩略图显示区3530位于gui3500的左侧,这指示出gui3500处于右手模式。由于当前没有选定工具栏3540内的编辑工具激活项目中任一项,因而应用处于查看模式。

第二阶段3510示出了在用户对图像3555调用了缩放工具之后的gui3500。如上所述,缩放工具能够通过对图像提供两个单独的触摸输入来调用。如图所示,用户通过将两个手指在图像3555上的单独位置处(在显示高尔夫球的位置附近)敲击来调用缩放工具。

作为两个触摸输入的结果,缩放环3525置于图像3555上,中心在两个单独的触摸输入之间的中点(即,在图像3555内的包括高尔夫球的位置周围,现在示为放大的)。另外,由于gui处于右手模式(由缩略图显示区3530的位置指示),放大信息3535显示于缩放环3525的左侧。该放大信息指示在缩放环3525内的当前缩放级别为2x。在缩放环3525的左侧显示放大信息使得用户在其右手处于缩放工具之上时容易看见该信息。如同下文将解释的,用户能够使用旋转手势来改变放大级别。

回过去参照图34,当处理3400在操作3420确定gui不处于右手模式(并且因而gui处于左手模式)时,处理显示(在3430)中心位于所识别的中点的缩放工具,放大信息显示于缩放环的右侧。然后处理结束。在某些实施例中,缩放工具是不管为左手模式还是右手模式都具有相同形状的缩放环(例如,圆形)。

图36示出了在gui处于左手模式时通过gui3500按照两个阶段3605和3610来调用圆形缩放工具的实例。如图所示,第一阶段3605与图35的第一阶段3505相同,不同之处在于在图36中的gui3500处于左手模式,缩略图显示区3530位于gui3500的右侧。

第二阶段3605示出了在用户对图像3555调用了缩放工具之后的gui3500。如上所述,缩放工具能够通过对图像提供两个单独的触摸输入来调用。如图所示,用户通过将两个手指在图像3555上的单独位置处(在显示高尔夫球的位置附近)敲击来调用缩放工具。

作为在图像3555上的两个触摸输入的结果,缩放环3525置于中心在两个单独的触摸输入之间的中点处(即,在图像3555内的包括高尔夫球的位置周围,现在示为放大的)的图像3555上。另外,由于gui处于左手模式(由缩略图显示区3530的位置指示),因而放大信息3535显示于缩放环3525的右侧。该放大信息指示在缩放环3525内的当前缩放级别为2x。在缩放环3525的右侧显示放大信息使得用户在其左手处于缩放工具之上时更容易看见该信息。如同下文将解释的,用户能够使用旋转手势来改变放大级别。

在缩放工具被调用并被显示于图像之上(即,置于图像上)的情况下,图像编辑应用还允许用户取消选择或取消调用缩放工具。应用的不同实施例提供用户能够用以取消选择缩放工具的不同方式。例如,当在图像上但在缩放工具之外接收到触摸收入时,某些实施例的应用去除缩放工具。

回过去参照图35,第三及第四阶段3515和3520示出了通过gui3500来取消选定缩放工具的实例。在第三阶段3515中的gui与第二阶段3510相同,缩放环3525仍然叠置于图像3555上,高尔夫球和周围的草被放大。第四阶段3520示出了在用户取消选定缩放工具之后的gui3500。如上所述,用户可以通过提供在缩放工具之外的图像上的触摸输入来取消选定缩放工具。如图所示,用户已经通过将手指敲击于在缩放工具3525之外的图像3555上的位置来取消选定缩放工具3525。作为在缩放环之外的单触摸输入的结果,应用从gui3500中去除缩放环3525。在某些实施例中,应用在缩放工具被取消调用时还显示声音效果(例如,相机快门关闭的声音)。某些实施例还在工具正被移除时于缩放工具内显示相机快门关闭的相应动画。

除了某些实施例的对缩放工具的简单调用和移除之外,用户还能够将缩放工具移动到图像中的不同位置,以便放大不同的部分,修改在缩放工具内示出的区域的放大级别,以及执行其他操作。这些操作现在将参照图37来描述。

图37在概念上示出了用于呈现出在某些实施例的gui内的缩放工具的各种操作的状态图3700。本领域技术人员应当意识到,状态图3700并不包含图像查看gui的各个状态,乃至缩放工具的各个状态,而只是在图像查看gui内的缩放工具操作的子集。

状态图3700将参照在图38、39、41、42和40中示出的ui实例来描述。特别地,图38和41在与缩放工具的放大(即,拉近)操作相关的多个阶段中示出了某些实施例的图像查看和编辑应用的gui。图39和42示出了在与缩放工具的缩小(即,拉远)操作相关的多个阶段中某些实施例的图像查看和编辑应用的gui。图40示出了在与缩放工具的重定位(即,移动)相关的多个阶段中的某些实施例的图像查看和编辑应用的gui。

如图37所示,gui具有两个初始状态3705和3710。在初始状态3705,gui显示缩略图网格(即,缩略图显示区)以及按右手模式显示于图像显示区内的图像。状态3710与状态3705相同,不同之处在于gui处于左手模式而不是右手模式,并且因而缩略图网格在gui的右侧。缩放工具在右手模式下的各种操作将首先参照图38、39和40来描述。

当缩放工具接收到在图像上的两个单独的触摸输入时,缩放工具从初始状态3705转变为状态3715,在该状态3715,gui按照右手模式将缩放环显示于图像上。如上所述,gui在某些实施例中提供了两个不同版本的缩放环,右手模式一个以及左手模式一个。在某些实施例中,在右手模式下的缩放环使放大信息显示于缩放环的左侧。这使用户在其右手处于缩放环之上时能够查看放大信息。在右手模式下调用和显示缩放环的操作在上文参照图35进行了详细描述。

只要没有提供影响缩放环的输入,缩放工具就处于状态3715。但是,当接收到顺时针的旋转输入时,gui就转变为状态3725以增大图像在缩放工具内的区域的放大率。在某些实施例中,用户能够通过将两个手指放于缩放环上并按照顺时针方向旋转两个手指来提供顺时针的旋转输入。某些实施例通过跟踪输入的位置并测量连接两个位置的直线的角度(例如,水平偏角)来识别这样的输入。当该角按照顺时针的方式改变时,应用增大右手缩放工具的放大率。在某些实施例中,两个触摸输入不需要直接位于缩放工具之上,但这样做通常会有助于用户使放大和缩小移动形象化。在增大图像在缩放环内的区域的放大率之后,gui返回到状态3715,只要用户不继续按顺时针方式旋转其手指即可。

图38示出了通过gui3500按照四个不同阶段3805-3820对缩放工具的放大操作。第一阶段3805与图35的第一阶段3505相同,缩略图显示区3530位于gui3500的左侧,而图像3555按查看模式显示于图像显示区3545内。

第二阶段3810示出了在用户通过提供在图像3555上的两个单独的触摸输入调用了缩放工具之后的gui3500。如图所示,用户已经在高尔夫球的位置周围以两个手指在图像3555上敲击。作为两个单独的触摸输入的结果,应用将缩放环3525叠置于图像3555上,该缩放环3525的中心位于两个单独的触摸输入之间的中点。另外,由于gui处于右手模式,应用在缩放环3525的左侧显示放大信息3535。在某些实施例中,默认放大率是2x缩放,放大率可在lx与3x之间变化。

第三阶段3815示出了在用户已经开始使用缩放工具来增大图像的放大率之后的gui3500。如上所述,用户能够通过提供顺时针的旋转输入来增大图像在缩放工具内的区域的放大率。如图所示,用户已经开始按顺时针方向旋转两个手指,如箭头3825所示。作为顺时针旋转输入的结果,图像在缩放环3525内的区域被显示为进一步放大的。

第四阶段3820示出了在用户已经使用缩放工具进一步增大了图像的放大率之后的gui3500。如图所示,用户已经继续按顺时针方向旋转两个手指,如箭头3830所示。作为旋转移动的结果,图像在缩放环3525内的区域在第四阶段3820中与第三阶段3815中的图像相比被进一步放大。在该阶段,缩放工具处于最大的3x的放大级别。

在某些实施例中,缩放工具将不会使图像的一部分放大超过其完全尺寸显示。在较小屏幕的装置上的图像通常被缩小尺寸以便适合于装置的显示内。例如,1920x1080的图像在640x480的显示屏上可以不按完全尺寸来显示。使用缩放工具使用户能够在较接近于其完全尺寸的情况下查看图像的一部分。但是,当图像已经处于其完全尺寸时(例如,在1920x1080的显示屏上的640x480的图像),则某些实施例将不允许用户调用缩放工具,因为这将在缩放区域内产生像素化。

回过去参照图37,当应用在状态3715下接收到逆时针的旋转输入时,gui转变为状态3735以减小图像在缩放工具内的区域的放大率。在某些实施例中,用户能够通过将两个手指放于缩放环上并且按逆时针方向旋转这两个手指来提供逆时针的旋转输入。如同顺时针选择一样,某些实施例通过跟踪两个输入的位置并测量连接位置的直线的角度来识别输入。在减小了图像在缩放环内的区域的放大率之后,只要用户不继续旋转其手指,gui就返回到状态3715。

图39示出了通过gui3500按照四个不同阶段3905-3920对缩放工具进行的缩小操作。在第一阶段3905的gui3500与在图38的第四阶段3820的gui相同。如图所示,gui3500包括放大率为3x的缩放环3525,并且图像在缩放环内的区域被放大。

第二阶段3910示出了在用户已经开始使用缩放工具来减小图像的放大率之后的gui3500。如上所述,用户能够通过提供逆时针的旋转输入来减小图像在缩放环内的区域的放大率。如图所示,用户已经开始按逆时针方向来旋转两个手指,如箭头3925所示。作为逆时针旋转输入的结果,应用已经减小了图像在缩放环3525内的区域的放大率。

第三阶段3915示出了在用户已经使用缩放工具进一步减小图像的放大率之后的gui3500。如图所示,用户已经按逆时针方向继续旋转两个手指,如箭头3930所示。作为旋转移动的结果,图像在缩放环3525内的区域在第三阶段3915中比在第二阶段3910缩小。第四阶段3920示出了在用户已经抬起两个手指使其离开缩放环3525之后的gui3500。如图所示,图像在缩放环3525内的区域在用户抬起手指之后保持为与在第三阶段3915中的图像的区域相同。

除了改变缩放工具的放大级别之外,某些实施例还允许用户将工具移动到图像周围,由此聚焦于图像内的不同区域。回过去参照图37,当缩放工具接收到环移动激活事件时,缩放工具转变为移环状态3745。在某些实施例中,环移动激活事件包括用户用手指长按(即,单触摸)缩放环。在移环状态3745期间,缩放环跟随着用户输入移动。也就是,缩放环移到用户将手指移到的任何地方。缩放工具保持为该状态,直到接收到缩放环移动解除激活事件。在某些实施例中,用户能够通过将手指抬离缩放环来解除激活缩放环移动操作。在接收缩放环移动解除激活事件时,缩放工具返回到状态3715。

图40示出了通过gui3500按照四个不同阶段4005、4010、4015和4020对缩放工具进行的移动操作。第一阶段4005与图35的第一阶段3505相同。如图所示,gui3500包括位于gui3500的左侧的缩略图显示区3530、图像显示区3545及菜单栏3540。图像3555按照查看模式显示于图像显示区3545内。另外,图40还示出:gui3500处于右手模式,这由缩略图显示区3530位于gui3500的左侧指示。

第二阶段4010示出了在用户调用了缩放工具之后的gui3500。如图所示,用户已经通过提供在图像3555上的两个单独的触摸输入来调用缩放工具。作为两个单独的触摸输入的结果,应用将缩放环3525叠置于图像3555上,该缩放环3525的中心在两个单独触摸的中点。另外,由于gui3500处于右手模式(由缩略图显示区3530的位置指示),因而gui在缩放环3525的左侧显示放大信息3535。

第三阶段4015示出了在用户已经开始以触摸手势来移动缩放环3525之后的gui3500。在某些实施例中,用户能够通过将单个手指放置于缩放环3525上并且将手指拖拽到图像上的其他位置来移动缩放环。如图所示,用户已经开始朝图像3555的右上角拖拽手指,如箭头4025所示。作为拖拽移动的结果,缩放环3525朝图像3555的右上角移动。第四阶段3915示出了在用户已经将缩放环3525移动到图像上的其他位置之后的gui3500。如图所示,用户已经朝图像3555的顶部拖拽手指,如箭头4030所示。作为拖拽移动的结果,缩放环3525现在朝图像3555的顶部移动。

在某些实施例中,缩放工具能够通过缩放工具解除激活事件来解除激活。例如,缩放工具能够在缩放环之外接收到单输入时被解除激活。回过去参照图37,当缩放工具在状态3715下接收到在缩放环之外的输入(例如,在缩放环之外的单触摸)时,缩放工具转变回到初始状态3705。某些实施例的缩放环的解除激活操作在上文参照图35的阶段3515和3520进行了更详细的描述。

如同上文所详细描述的,用户能够通过将缩略图显示区(即,缩略图网格)移动到gui的右侧而将图像查看和编辑gui由右手模式切换为左手模式。因而,在处于初始状态3705时,当缩略图网格被移动到显示的右侧时,缩放工具转变为其他初始状态3710(并且如果用户将缩略图网格移动回到左侧,则相反)。从初始状态3710开始的缩放工具的各种操作现在将参照图41和42来描述。这些操作类似于右手操作,除了放大和缩小操作由沿相反方向的旋转导致的之外。

当缩放工具接收到在图像上的两个单独的触摸输入时,缩放工具从初始状态3710转变为状态3720,在该状态3720下,gui按左手模式来将缩放环显示于图像上。如上所述,gui在某些实施例中提供了两个不同版本的缩放环,右手模式一个以及左手模式一个。在某些实施例中,缩放环在左手模式下使放大信息显示于缩放环的右侧。这使用户在其左手处于缩放环之上时能够查看放大信息。在左手模式下调用和显示缩放环的操作在上文参照图36进行了详细描述。

只要没有提供影响缩放环的输入,缩放工具就处于状态3720。但是,当接收到逆时针方向的旋转输入时,gui转变为状态3730以增大图像在缩放工具内的区域的放大率。在某些实施例中,用户能够通过将两个手指放于缩放环上并且按逆时针方向旋转这两个手指来提供逆时针的旋转输入。某些实施例通过跟踪输入的位置并测量连接两个位置的直线的角度(例如,水平偏角)来识别此类输入。当该角按逆时针方式改变时,应用增大左手缩放工具的放大率。在某些实施例中,两个触摸输入不需要直接位于缩放工具之上,但这样做通常会有助于用户将放大和缩小移动形象化。在增大了图像于缩放环内的区域的放大率之后,只要用户不继续按逆时针方式旋转其手指,gui就返回到状态3720。

图41示出了通过gui3500按照四个不同阶段4105-4120对缩放工具的放大操作。第一阶段4105与图36的第一阶段3605相同,缩略图显示区3530位于gui3500的右侧,并且图像3555按照查看模式显示于图像显示区3545内。

第二阶段4110示出了在用户已经通过提供在图像3555上的两个单独的触摸输入来调用缩放工具之后的gui3500。如图所示,用户已经在高尔夫球的位置附近在图像3555上以两个手指进行敲击。作为两个单独的触摸输入的结果,应用将缩放环3525叠置于图像3555上,该缩放环3525的中心在两个单独的触摸输入之间的中点。另外,由于gui处于左手模式,因而应用在缩放环3525的左侧显示放大信息3535。在某些实施例中,默认放大率是2x放大,放大率可在1x和3x之间变化。

第三阶段4115示出了在用户已经开始使用缩放工具来增大图像的放大率之后的gui3500。如上所述,用户能够通过提供逆时针的旋转输入来增大图像在缩放工具内的区域的放大率。如图所示,用户已经开始按逆时针方向来旋转两个手指,如箭头4125所示。作为逆时针旋转输入的结果,图像在缩放环3525内的区域被显示为进一步放大的。

第四阶段4120示出了在用户已经使用缩放工具进一步增大图像的放大率之后的gui3500。如图所示,用户已经继续按逆时针方向旋转两个手指,如箭头4130所示。作为旋转移动的结果,图像在缩放环3525内的区域在第四阶段4120中与第三阶段3815中的图像相比被更多地放大。在该阶段,缩放工具处于最大的3x的放大级别。

回过去参照图37,当应用在状态3720下接收到顺时针的旋转输入时,gui转变为状态3740以减小图像在缩放工具内的区域的放大率。在某些实施例中,用户能够通过将两个手指放于缩放环上并按照顺时针方向旋转两个手指来提供顺时针的旋转输入。如同逆时针旋转一样,某些实施例通过跟踪两个输入的位置并测量连接位置的直线的角度来识别该输入。在减小了图像于缩放环内的区域的放大率之后,只要用户不继续旋转其手指,gui就返回到状态3720。

图42示出了通过gui3500按照四个不同阶段4205-4220对缩放工具的缩小操作。在第一阶段4205的gui3500与图41的在第四阶段4120的gui相同。如图所示,gui3500包括放大率为3x的缩放环3525并且图像在缩放环内的区域被放大。

第二阶段4210示出了在用户已经开始使用缩放工具来减小图像的放大率之后的gui3500。如上所述,用户能够通过提供顺时针的旋转输入来减小图像在缩放环内的区域的放大率。如图所示,用户已经开始按顺时针方向旋转两个手指,如箭头4225所示。作为顺时针旋转输入的结果,应用已经减小了图像在缩放环3525内的区域的放大率。

第三阶段4215示出了在用户已经使用缩放工具进一步减小图像的放大率之后的gui3500。如图所示,用户已经继续按顺时针方向旋转两个手指,如箭头4230所示。作为旋转移动的结果,图像在缩放环3525内的区域在第三阶段4215中与第二阶段4210相比被进一步缩小。第四阶段4220示出了在用户已经抬起两个手指使其离开缩放环3525之后的gui3500。如图所示,图像在缩放环3525内的区域在用户抬起手指之后保持为与在第三阶段4215中的图像的区域相同。

如同右手缩放工具一样,用户能够在左手模式下将工具移动到图像的不同区域附近。虽然用于放大和缩小的手势对于左手和右手模式是方向相反的,但是在某些实施例中,移动缩放环在任意模式下都包括相同的手势。回过去参照图37,当缩放工具接收到环移动激活事件时,缩放工具转变为移环状态3750。在某些实施例中,环移动激活事件涉及用户用手指长按(即,单触摸输入)缩放环。在移环状态3750期间,缩放环跟随着用户输入的移动。也就是,缩放环移到用户将手指移到的任何地方。缩放工具保持为该状态,直到接收到缩放环移动解除激活事件。在某些实施例中,用户能够通过将手指抬离缩放环来解除激活缩放环移动操作。在接收缩放环移动解除激活事件时,缩放工具返回到状态3720。当缩放工具在状态3720下接收到在缩放环之外的输入(例如,在缩放环之外的单触摸)时,缩放工具转变回到初始状态3710,gui处于左手模式。

iv.多个图像的显示

虽然上述实例中的许多实例示出了在图像显示区内只有一个图像的gui,但是某些实施例允许用户选择几个图像用于同时显示。在各种实施例中,用户可利用不同的处理以便显示多个图像。用户能够选择在合集中的特定图像(通过以特定类型的选择输入来选择相应的缩略图),并且应用自动地识别在合集中的与所选图像的相似度在阈值之内的任何其他图像。另外,用户能够通过长按每个缩略图持续阈值持续时间来选择在缩略图显示区内的图像区块(例如,通过在多点触摸装置上的单独输入)或者若干个体图像。另外,某些实施例还包括用于同时选择多个图像的设置菜单选项。

当多个图像被选择用于在图像显示区内显示时,某些实施例使用用于在确保所有图像的视觉加权都相等的同时使显示的使用率最大化的显示算法。在某些实施例中,应用识别出要显示的图像的平均纵横比,然后针对图像的数量将图像显示区划分成理想网格,网格的每个矩形区域都具有平均纵横比。然后,应用使每个图像适合于网格矩形之一内。

a.相似图像的识别和显示

如上所述,用于选择多个图像来显示于图像显示区内的方法之一是选择图像并促使应用识别出在同一合集内的与所选图像之间的相似度在阈值之内的任何图像。在某些实施例中,当用户在缩略图上双敲击(或双击)时,应用自动地将合集内的其他图像与所选图像进行比较。为了执行两个图像之间的比较,某些实施例使用每个图像的柱状图集合,并且确定图像柱状图的相似度是否在阈值之内。某些实施例使用颜色、纹理及梯度柱状图,但其他实施例也可以使用其他像素性质来比较图像。为了使比较聚焦于图像的更重要部分(例如,中心),某些实施例将图像划分成几个区域并且比较相应区域的柱状图。区域可以是重叠的,使得某些像素(例如,在图像中心的像素)与其他像素相比用于更多的区域。

图43在概念上示出了用于识别并显示合集内的相似图像的某些实施例的处理4300。某些实施例的图像查看、编辑及组织应用响应于在应用处于查看模式下显示相似图像的用户命令而执行该处理。处理4300将部分地参照图44-46来描述。图44示出了经由其中用户选择特定图像并且应用识别出在合集内与所选图像相似的图像集合的三个阶段4410-4430的图像查看应用的gui4400。

gui4400包括缩略图显示区4405和图像显示区4415。这些显示区类似于以上针对图14所描述的那些显示区。如同在图像显示区4415上方的栏区所示出的,缩略图显示区4405显示在合集“相册1”中的图像的缩略图集合。

如图所示,处理4300首先开始接收(在4305)对在相册内的特定图像的选择以及用于识别相似图像的命令。如上所述,当用户在图像的缩略图上双敲击(即,在同一缩略图值上的于阈值持续时间之内的两次快速连续的敲击)或双击时,某些实施例自动地执行该处理。但是,该特征还能够通过其他gui交互来访问,例如,与所选图像一起选择菜单选项或单独的gui项目、键入键击集合等。

图44的第一阶段4410示出:当前在缩略图显示区4405内没有选定任一缩略图。在第二阶段4420中,用户以单个手指双击缩略图4425。该图像示出高尔夫球手刚好击打了高尔夫球。如同能够从缩略图显示区4405中所看见的,合集包括该高尔夫球场景的四个其他图像,以及各种无关图像。

然后,处理4300输出(在4310)与图像比较操作关联的声音效果。本领域技术人员应当意识到,各种不同的实施例可以使用不同的声音效果,并且某些可以完全不输出声音效果。在某些实施例中,所使用的声音效果可以被设计为模拟人在翻阅大的实体相片集,或者为让人感觉处理器在执行计算。虽然声音效果的输出在概念上被示于在比较操作之前执行的处理4300中,但是在许多情况下,在用于运行应用的装置上的处理器将会在装置输出声音效果的时间内执行比较所必需的计算。

然后,该处理检索(在4315)所选图像的统计信息。在某些实施例中,统计信息包括用于提供图像相关的信息的柱状图集合。在某些实施例中,柱状图提供有关图像中的颜色分布、图像中的颜色的变化性以及出现于图像内的形状的信息。如同以下参照图47更详细地描述的,某些实施例的应用将每个像素放置于颜色范围、纹理范围及梯度范围之内。颜色标识像素在特定的颜色空间中的位置,纹理标识像素的颜色数据与其相邻像素的颜色数据的相似或差异程度,并且梯度标识像素相对其相邻像素的强度变化方向及大小。除了这些(及其他)柱状图之外,某些实施例还使用其他信息来比较图像,例如,文件名、用户输入的描述、exif数据等。

在某些实施例中,应用将图像划分成几个区域并且比较两个图像的相应部分的柱状图。不同的实施例对图像的划分不同。图45在概念上示出了将图像4500分成9个不同图块的这样一种划分,该9个图块中的每个图块是图像尺寸的四分之一。图45使用四个面板4505-4520来示出这9个图块4525-4565。前四个图块4525-4540是图像4500的四个角部区域。随后两个图块4545和4550(在面板4510中)占用了图像的垂直中心,而在面板4515中的图块4555和4560占用了图像的水平中心。最后,最后的面板4520仅具有中心位于图像的实际中心点的一个图块4565。

使用该特定的区域集合对图像的某些像素给予了相对其他像素更多的权重,使得这些像素在两个图像的比较中更加重要。图46示出了由对图像4500的这种特定划分产生的16个像素象限,并且图块4525-4565的像素包括来自每个象限的像素。如图所示,在四个角部的象限仅包含于一个图块内,并且因而这些像素只贡献于图像的9个柱状图集合之一。仅与图像的一个边接界的8个象限每个都包含于两个图块内,而四个中心象限每个都包含于四个图块内。因而,在与不同图像比较时,中心像素的权重将为角部像素的四倍还要大。

在某些实施例中,应用预先地计算出柱状图(以及任何其他统计信息),而不是在被要求识别相似图像时执行所有计算。某些实施例在应用首次导入图像时生成图像的柱状图,并且将图像的柱状图与图像一起存储(例如,作为在图15的图像数据结构1500中的附加数据的一部分,如上所述)。在9个图块每个都有三个柱状图的情况下,某些实施例为每个图像存储27个不同的柱状图。

返回到图43,处理4300然后从当前显示的合集(初始选定的图像是该合集的一部分)中选择(在4320)新的比较图像。某些实施例从存储于合集数据结构内的有序系列的开始处开始遍历图像,然而其他实施例从在有序系列中于所选图像之后的下一图像开始,随机选择合集中的图像,或者使用别的算法。

然后,该处理检索(在4325)当前比较图像的统计信息。这些统计信息是与针对用户选定图像检索的统计信息相同的统计信息(即,图像的各种不同区域的颜色、纹理及梯度的柱状图)。如上所述,某些实施例预先计算这些柱状图并且以图像的数据结构来存储柱状图。

然后,处理4300将特定的用户选定图像的统计信息与当前比较图像的统计信息进行比较(在4330)。不同的实施例不同地执行该比较。某些实施例将所选图像的每个柱状图与当前比较图像的相应柱状图进行比较。例如,第一图像的图块1的颜色柱状图与第二图像的图块1的颜色柱状图比较,第一图像的图块5的纹理柱状图与第二图像的图块5的纹理柱状图比较,等等。正因如此,某些实施例执行27个不同的比较,以便用来确定这两个图像是否被认定为相似的。

为了比较不同图像的柱状图,不同的实施例使用不同的技术。每个柱状图是由值的范围定义的仓段集合。仓段可以是一维的或多维的。例如,纹理由单个值定义,并且因而每个仓段是该纹理值的范围。像素的梯度被定义为具有角度和长度(或者,作为选择,x向值和y向值)两者的矢量。因而,每个仓段将含有落入特定的角度范围和特定的长度范围内的像素。像素的颜色值通常为在颜色空间(例如,rgb空间、hsl空间、ycbcr空间或者不同的颜色空间)中的三维值。因而,每个仓段在这三个维度中的每个维度内都将具有确定的范围,如同以下参照图48-50更详细地描述的。

应用比较在第一图像的柱状图的每个仓段内的像素数量与在第二图像的相应的柱状图的每个相应仓段内的像素数量。某些实施例使用均方根函数来计算两个柱状图之间的差异,该均方根函数对柱状图的每个仓段的差值的平方的均值求平方根。作为简化的实例,如果第一柱状图具有值[4,2,1,5],并且第二柱状图具有值[3,2,4,3],则均方根函数是:

sqrt[{(4-3)2+(2-2)2+(1-4)2+(5-3)2}/4]=sqrt(3.5)=1.87。

应用然后将均方根输出与在柱状图内的像素的总数(即,图像的像素数量的四分之一)进行比较以确定比较得分。该比较得分针对每个柱状图(即,在所示的实例中为27个不同的柱状图)来计算。某些实施例不是使用均方根分析,而是使用在两个柱状图之间的简单的偏差均值,或者用于量化在两个柱状图之间的差异的某些其他算法。

为了将具有不同数量的像素的图像的柱状图进行比较,某些实施例确定像素计数比并且将较小图像的柱状图值乘以该量。其他实施例只比较具有相同的像素数量和纵横比的图像。

某些其他实施例将每个柱状图值除以在图像(或图块)内的像素总数,从而具有相对于整个柱状图和为1的小数的柱状图。在某些这样的实施例中,应用使用乘法函数的平方根来比较柱状图。该函数对与其在第二柱状图中的相应仓段值相乘的在第一柱状图内的每个仓段值求平方根,然后在柱状图中的整个仓段集合上对这些平方根求和。因而,对于具有值[0.1,0.4,0.3,0.2]的第一简单柱状图以及具有值[0.35,0.25,0.3,0.1]的第二柱状图,得分将为sqrt(0.1*0.35)+sqrt(0.4*0.25)+sqrt(0.3*0.3)+sqrt(0.2*0.1)=0.9447。如果柱状图是相同的,则该比较方法给出得分1,并且随着柱状图变得越来越不同而减小。

由其他实施例采用的其他方法使用重叠的显著仓段的总和。该处理只计算在两个柱状图中的值都大于特定阈值的仓段。阈值可以是用来生成柱状图的总体像素的特定百分比,或者仓段数的函数(例如,5/n,其中n是仓段数)。当第一及第二柱状图两者的仓段的值大于阈值时,这些值被加到总得分上,用于柱状图比较。在该比较中,得分能够为0(如果没有重叠的显著仓段)至2(如果所有像素都在重叠的显著仓段内)。该比较技术防止在小的(并且因此为意义不大的)柱状图仓段中的差异模糊比较处理。

在比较两个图像的统计信息的情况下,处理4300确定(在4335)图像的相似度是否在阈值之内。在某些实施例中,应用对每个柱状图的比较得分求均值并且确定平均得分是否落入阈值之内。这确保了较小的差异(例如,在图像角部的项目的存在与不存在)不会防止两个另外相似的图像照此被识别出。

其他实施例执行对颜色柱状图差异的第一平均、对纹理柱状图差异的第二平均,以及对梯度柱状图差异的第三平均。某些这样的实施例要求全部三个平均比较得分都落入阈值之内,但其他实施例只要求三个平均得分中的两个满足阈值。在另外一些实施例中,应用将每个柱状图比较得分与阈值进行比较,并且要求特定数量(例如,它们全部、18/27等)的得分满足阈值以便将两个图像看作是相似的。

在某些实施例中,应用对于颜色、梯度及纹理柱状图的相似度使用不同的阈值。例如,应用可以允许颜色柱状图的可变性比梯度柱状图的大,因为这样做将允许不同的曝光图像或者阴天相对于晴天的图像在它们具有相同的形状时被认为是相似的。

在某些实施例中,相似度阈值基于机器学习决策树技术。这种技术使用之前已经被划分为相似的或不相似的样本图像对,并且为图像计算不同的比较得分(例如,使用以上所述的比较技术中的一种或多种)。这些得分然后针对相似的和不相似的图像对来分析,以便为比较得分识别出有用的阈值或者阈值组合。

当图像的相似度在阈值之内时,处理将当前的比较图像添加(在4340)到被划分为与特定图像相似的图像组。也就是,当前的比较图像成为将连同用户选定图像以及任何其他相似的图像一起显示于图像显示区内的选定图像之一。

处理4300然后确定(在4345)当前的合集是否含有该处理尚未将其与特定的用户选定图像进行比较的任何别的图像。如上所述,应用遍历整个合集,即使合集包括由应用导入的全部图像也是如此。当仍有别的图像时,处理返回到4320以如同当前的比较图像那样设置下一图像。

一旦在当前合集中的所有图像都已经与用户选定图像进行了比较,处理就在图像显示区内显示(在4350)特定的用户所选图像及其相似的图像。返回到图44,第三阶段4430示出了用户以双击输入选择缩略图4425的结果。在该阶段中,应用在图像显示区内显示四个图像4435-4450。这些是示出高尔夫球手的五个图像中的四个。第五个图像,缩略图4455差异很大以致于无法被认为是相似的(例如,因为高尔夫俱乐部的不同位置导致梯度差异足够大或者因为图像的暗度导致颜色差异足够大)。图像4435-4450的缩略图现在具有高亮边以便指示这些图像被选择用于查看。某些实施例根据在全部图像上保持相等的视觉加权的算法而在图像显示区4415内显示图像(但这在本例中不成为问题,因为图像的纵横比是相等的)。

图43的处理4300描述了应用如何通过比较图像的各种柱状图来执行多个图像之间的比较。图47在概念上示出了根据本发明的某些实施例的用于生成柱状图集合的处理4700。如上所述,某些实施例预先计算出柱状图(例如,在图像导入时生成柱状图,并且将它们与图像一起保存),并且因而在图像被导入应用时对每个图像执行处理4700或类似的处理。处理4700将部分地参照图48-50来描述,所述图48-50在概念上示出了通常由应用用来生成图像的颜色柱状图集合的颜色空间。

如图所示,处理4700从接收图像开始(在4705)。典型的图像包括排列成矩形的像素集合。每个像素一般地通过(i)在特定的颜色空间中的颜色值集合以及(ii)在矩形中的位置来定义。图像可以为编码形式,在这种情况下,应用对图像解码以便识别图像的像素的颜色值。

处理计算(在4710)在该处理将为其生成柱状图的不同图块的图像内的尺寸。如同以上参照图45和46所描述的,某些实施例为9个不同图块中的每个图块生成三个柱状图。处理确定每个图块的像素尺寸。例如,如果图像具有像素尺寸640x480(即,640个像素在水平方向上以及480个像素在垂直方向上),图块14525将使用角部在(1,1)(图像的左侧角部)和(320,240)(图像的中心)的像素矩形,而图块94565将使用从像素位置(161,121)到(480,360)的矩形。

然后,该处理选择(在4715)图像的下一像素。某些实施例遍历每行像素,从在左上角的像素(1,1)开始,首先沿着顶行遍历,并然后下到下一行等。其他实施例按照不同方式(例如,随机地、列优先等)来选择像素。

然后,处理4700识别出(4720)选定像素所属的图像的全部图块。使用图45和46所示的图块方案,朝角部定位的像素将只属于图像的一个区域,而位于中央的像素将属于四个区域。使用该方案,在只接近一个边的象限内的像素属于两个区域。

然后,该处理开始生成柱状图。在该实例处理4700中,应用首先生成颜色值,然后是纹理值,并且最后是梯度值。但是,本领域技术人员应当意识到,不同的实施例会按照不同的顺序来执行这些计算,或者并行地执行它们。

处理将像素值转换(在4725)为色调饱和值(hsv)的颜色空间。所存储的像素值通常在装置专用的rgb颜色空间中,并且转换为hsv只需要简单的变换。图48在概念上示出了hsv颜色空间4800,该hsv颜色空间4800是被设计为比笛卡尔rgb坐标系更直观的且更感知相关的圆柱坐标系。如图所示,在颜色空间4800中,色调由角度维度表示,红色通常主要位于角度0,绿色主要位于120°,而蓝色主要位于240°。径向维度表示饱和度,范围为从中心的0饱和度(非彩色)到外边缘处的完全饱和(纯色)。垂直轴表示亮度,在中心的亮度范围为从黑色(亮度=0)到白色(亮度=1)。

hsv颜色空间只是能够被用来生成颜色柱状图的一种可能的颜色空间。某些实施例使用不同的颜色空间,例如,hsl(色调-饱和度-亮度)颜色空间、ycbcr(亮度-色度)颜色空间,或者其他开发人员定义的颜色空间。其他实施例不执行颜色转换,并且只使用其中像素已经被定义的装置的伽马校正型rgb空间。

在像素值已转换的情况下,处理4700然后识别出(在4730)当前选定的像素所属的hsv颜色空间的区域。每个区域是在颜色空间中的三维区域。但是,在某些实施例中,区域在颜色空间中具有不同的尺寸,使得每个区域覆盖容量相似的人眼可辨别的颜色空间。也就是,与人眼可容易辨别不同颜色值的颜色空间的区域相比,在人眼难以辨别不同颜色值的颜色空间的区域内,该区域是较大的。

例如,两个区域可以具有不同的色调范围、不同的饱和度范围,和/或不同的值范围。图49示出了hsv颜色空间的圆形截面4900(即,在恒定值),两个区域被定义。第一区域4905处于色调维度的红色部分,而第二区域4910处于色调维度的蓝色部分。一般地,人眼能够更容易地辨别蓝色的形状,而不是红色的形状,所以某些实施例使用在颜色空间的蓝色部分中具有比在颜色空间的红色部分中较小色调范围的区域,如本例所示。

图50示出了被划分成两个区域5005和5010的hsv颜色空间的三维部分5000。在这种情况下,两个区域的饱和度及色调是相等的,但是值范围是不同的。本领域技术人员应当意识到,这些区域只是示例,并且区域可以具有在颜色空间中的任意形状。虽然在图49和图50都没有示出,但是在特定的色调和值之内,多个区域能够针对不同的饱和度范围来定义。而且,区域不需要在所有维度下都是恒定的范围。例如,特定的区域可以具有相对于其外部饱和度的第一色调范围以及相对于其最内部饱和度的不同的第二色调范围,只要区域占用整个颜色空间即可。

返回到图47,处理4700通过将像素与图像内的相邻像素进行比较来计算(在4735)当前选定的像素的纹理值。某些实施例使用用于将像素的亮度值与周围像素的亮度值进行比较以确定像素的单个纹理值的纹理计算。为了确定像素亮度,某些实施例对rgb像素值执行计算。其他实施例将像素的不同性质(除亮度外)与相邻像素的性质进行比较。

由某些实施例使用的新的纹理计算算法参照图51来描述。该图示出了由某些实施例用来计算中心像素(p0)的纹理的9个像素。最初,某些实施例计算每个像素的强度值(类似于明度、亮度或值)。这基本上是rgb值的加权平均,其可以给予一种或另一种颜色通道值更高的权重。例如,某些实施例对红色颜色通道设置更高的权重。

在图51中的像素具有i0(对于像素p0)至i8(对于像素p8)的强度值。某些实施例的纹理计算使用一组条件检查来确定纹理值。本领域技术人员应当意识到,纹理值不对应于物理量,而是仅仅为不同的仓段。某些实施例的纹理计算如下:

·若p0具有窗口中的最大强度,则指定0至p0的纹理;

·若p0具有窗口中的最小强度,则指定1至p0的纹理;

·若p0不具有最小或最大的强度,但是i0,i1,...,i8全都在彼此的阈值之内(即,它们全都具有相同的或相似的强度),则指定2至p0的纹理。

若这三个条件都不满足,则应用计算下列差值:

·(i1+i2+i3)-(i6+i7+i8);

·(i3+i5+i8)-(i1+i4+i6);

·(i1+i2+i4)-(i5+i7+i8);

·(i2+i3+i5)-(i4+i6+i7)。

然后,应用确定这些差值中的哪个差值具有最大的绝对值,因为其指示了在窗口内于像素p0周围的最大强度变化的方向。第一差值对应于强度的垂直变化,第二差值对应于强度的水平变化,第三差值对应于从右上角到左下角的变化,而第四差值对应于从右下角到左上角的变化。

如果第一不等量是最大的,则应用指定下列两个纹理值之一:

·若(i1+i2+i3)>(i6+i7+i8),则指定3至p0的纹理;

·若(i1+i2+i3)<=(i6+i7+i8),则指定4至p0的纹理。

如果第二不等量是最大的,则应用指定下列两个纹理值之一:

·若(i3+i5+i8)>(i1+i4+i6),则指定5至p0的纹理;

·若(i3+i5+i8)<=(i1+i4+i6),则指定6至p0的纹理。

如果第三不等量是最大的,则应用指定下列两个纹理值之一:

·若(i1+i2+i4)>(i5+i7+i8),则指定7至p0的纹理;

·若(i1+i2+i4)<=(i5+i7+i8),则指定8至p0的纹理。

最后,如果第四不等量是最大的,则应用指定下列两个纹理值之一:

·若(i2+i3+i5)>(i4+i6+i7),则指定9至p0的纹理;

·若(i2+i3+i5)<=(i4+i6+i7),则指定10至p0的纹理。

因而,应用基于不等量将每个像素指派给11个不同的纹理仓段之一。本领域技术人员应当意识到,虽然该示例示出了3x3像素窗口,但是某些实施例将使用5x5的窗口,每个不等量在每一侧具有10个像素强度,而不是3个。

在算得选定像素的纹理的情况下,处理4700然后识别出(在4740)像素所属的纹理范围。由于纹理是一维值,因而纹理柱状图的每个仓段表示沿该一个维度的特定范围。如同颜色柱状图一样,不同的纹理范围可以不一定是长度相等的。

处理4700还通过识别出在相邻像素中的最大变化方向来计算(在4745)梯度值。某些实施例使用用于识别像素的强度在水平和垂直两个方向上的变化方向和大小的梯度计算。例如,某些实施例使用只测量相对强度变化的梯度(即,与水平变化相比的垂直变化)。某些实施例使用公式,即梯度θ=atan2(δi/δy,δi/δx),其中i仍为强度(用于以上给出的纹理计算的相同值)。

再次参照图51,p0的梯度为θ=atan2(i2-i7,i4-i5)。atan2函数是用于针对两者不全等于0的任意实变变量(y,x)给出在笛卡尔平面的正x轴与由在平面上的坐标(x,y)给出的点之间的弧度角的函数。因而,某些实施例的梯度是与在垂直强度变化和水平强度变化之间的相对差值相关的角度。

在梯度被算出的情况下,处理然后识别出(在3850)像素所属的梯度范围。以上给出的梯度是一维值(即,仅为角度)。在某些实施例中,梯度是二维值(例如,表示为x-y矢量或者角度和长度)。因而,梯度柱状图的每个仓段表示x和y梯度值的特定的范围。如同颜色柱状图一样,不同的梯度范围在笛卡尔x-y空间中可以不一定是尺寸相等的。

在范围针对像素的三种不同性质来识别出的情况下,处理将像素添加(在4755)到在操作4720确定的像素所属的图像的每个图块的颜色、纹理及形状(梯度)柱状图。如上所示,对于以上图形所示的图块方案,取决于像素的位置,这可以是3个不同的柱状图、6个不同的柱状图或者12个不同的柱状图。

在分析了当前选定的像素后,处理4700确定(在4760)在图像中是否还有任何别的像素尚未分析。当还有别的像素时,处理4700返回到操作4715以选择下一像素。一旦全部像素都已经被分析,则处理结束。

图52在概念上示出了用于生成柱状图并针对相似度来比较图像的某些实施例的图像查看、编辑及组织应用的某些部分的软件体系结构。图52示出了柱状图生成模块5200、相似度比较器5250及图像选择器5275。另外,该图示出了图像数据5280(即,由应用存储的图像数据结构和图像文件)以及合集数据5285(即,由应用存储的合集数据结构)。

柱状图生成模块5200接收图像(例如,图像查看应用正在导入的图像)并且为图像的各个区域生成颜色、纹理及形状的柱状图,然后将这些柱状图与图像一起存储。柱状图生成模块5200包括图像分块器5205、hsv转换器5210、强度计算器5215、纹理计算器5220、梯度计算器5225及柱状图生成器5230。

如图所示,图像分块器5205、hsv转换器5210及强度计算器5215接收图像数据。图像分块器5205接收图像,识别图像的尺寸,并且计算不同区域在图像中的坐标(即,像素坐标),对于这些区域,柱状图生成模块5200将为其生成柱状图。图像分块器5205将这些图块坐标传递给柱状图生成器5220。

hsv转换器5210接收图像的像素数据并且将每个像素转换到hsv颜色空间(例如,从rgb空间)。本领域技术人员应当意识到,不同的实施例可以使用不同版本的rgb-hsv转换,或者可以使用完全不同的颜色空间。hsv转换器将图像的每个像素的这种颜色空间数据传递给柱状图生成器5220。

强度计算器5215还接收图像的像素数据并且计算每个像素的强度值。如同hsv转换器一样,不同的实施例可以使用不同的计算来从rgb像素值中得出强度。强度计算器5215将该强度数据提供给纹理计算器5220和梯度计算器5225。

纹理计算器5220计算每个像素的纹理值(例如,使用以上所述的纹理算法,或者不同的处理)并且将这些值提供给柱状图生成器5220。梯度计算器5225计算每个像素的梯度值(例如,使用以上所述的梯度算法,或者不同的处理)并且将梯度值提供给柱状图生成器5220。

柱状图生成器5220使用颜色数据、纹理值及梯度值来生成接收自图像分块器5205的每个图块的柱状图。柱状图生成器5220接收例如每个像素的纹理值。对于特定的像素,柱状图生成器基于像素坐标来识别该像素属于哪个(可能是多个)图块。生成器然后将纹理值添加至一个或多个图块的适当的柱状图仓段。柱状图生成器5220将这些柱状图存储于图像的图像数据5280内。

相似度比较器5250识别类似于特定的用户选定图像的图像。如图所示,相似度比较器5250包括比较得分生成器5255和阈值检查器5260。当用户请求特定图像的相似图像时,相似度比较器5250接收来自合集数据5285的图像列表(例如,在特定合集中的图像的列表)。相似度比较器5250检索图像的柱状图并且计算每对图像的一个或多个比较得分。

阈值检查器5260接收比较得分并且确定每对图像是否被认定为相似的。如上所述,阈值检查器可以对不同的得分执行各种不同的检查(在某些实施例中,存在27个不同的比较得分)。阈值检查器5260将相似图像的列表输出到图像选择器5275,该图像选择器5275为gui管理对特定图像的选择。

b.多个图像的用户选择

如上所述,某些实施例提供用于选择多个图像以便同时查看所选图像的各种其他方法。例如,应用可以运行于可多点触摸的装置(即,能够识别到多个不同的与触摸屏接触的点的装置、触摸板等)上并且将在缩略图显示区上的多点触摸输入转译成对缩略图的区块选择。而且,某些实施例允许用户长按缩略图以便将缩略图添加到所选图像的集合中。

图53在概念上示出了用于选择在图像显示区内的缩略图区块的某些实施例的处理5300。在某些实施例中,应用接收多点触摸选择以便选择该区块。图53将参照图54和55来描述,该图54和55示出了选择这样的缩略图区块的实例。这两个图都示出了gui5400的三个阶段,该gui5400包括缩略图显示区5405和图像显示区5415,类似于在以上所述的gui中的相应显示区。图54的第一阶段5410和图55的第一阶段5510两者都示出了尚未有选定的图像的gui5400。

如图所示,处理5300首先开始接收(在5305)在缩略图显示区内的两个单独的且至少部分一致的选择。应用可以接收来自能够转译多点触摸输入的装置的触摸屏的这些选择。例如,用户可以使用两个手指在缩略图显示区内的两个单独的缩略图上按下。因为用户不太可能正好在同一时刻以两个手指与触摸屏进行初始接触,所以某些实施例只要求输入是部分一致的。

然后,该处理识别出(在5310)在缩略图显示区内与第一触摸选择关联的第一缩略图以及(在5315)与第二触摸选择关联的第二缩略图。某些实施例使每个缩略图与特定的二维屏幕像素阵列关联,该屏幕像素阵列在缩略图滚动通过显示区时改变。当用户在缩略图网格上触摸屏幕时,该触摸输入被转译成一组像素值(例如,特定半径的圆形、特定边长的方形等)。然后,应用将这些像素值与缩略图的像素值进行比较以便确定用户正在选择哪个缩略图。某些实施例识别出与触摸输入像素的最大的部分对应的缩略图。

图54的第二阶段5420示出了用户以其食指敲击第一缩略图5425并以其拇指敲击第二缩略图5435。假定左上方的缩略图表示在合集中的第一图像,则这些是在图像的有序合集中的第三和第八缩略图。在图55的第二阶段5520中,用户敲击第一缩略图5505(在有序合集中的第四缩略图)并同样敲击第二缩略图5435。

在用于选择的边界缩略图被识别出的情况下,处理5300确定(在5320)第一缩略图是否在显示区内的第二缩略图之前。顺序可以根据在合集数据结构中的顺序值(例如,对用于存储缩略图的图像数据结构的引用的阵列索引)来确定,或者相对顺序可以从缩略图显示于其上的屏幕像素中得出。

某些实施例使用作为第一缩略图来接收的第一输入以及作为第二缩略图来接收的第二输入。但是,为了适当地定义该选择,应用在顺序上需要第一缩略图于第二缩略图之前到来。正因如此,当第一缩略图在第二缩略图之后时,处理切换(在5325)第一及第二缩略图使得第一缩略图在顺序上首先到来。

然后,处理选择(在5330)缩略图在从第一缩略图到第二缩略图的网格中的所有图像。例如,在图54中,缩略图3和8是第一及第二缩略图。正因如此,缩略图3至8中的所有缩略图都由该用户动作选中。同样地,在图55中,缩略图4至8将被选中。

然后,该处理在选中的缩略图上显示(在5335)选择指示符。某些实施例使用两种不同形式的选择指示符来指示选中的缩略图是对应于次选定图像(即,若干选定图像之一)还是对应于主选定图像(即,作为显示于图像显示区内的唯一图像的活动图像)。

因此,处理5300还在图像显示区内显示(在5340)所选图像。当多个图像以处理5300按照块的方式来选择时,某些实施例总是在图像显示区内显示全部图像。在某些实施例中,应用通过为每个图像使用数量近似相等的像素而使用相同的视觉加权来显示全部图像。用于识别理想显示的某些实施例的处理将在下面于本部分的分部c中描述。

图54的第三阶段5430和图55的5530示出了各个多点触摸区块选择的结果显示。在阶段5430中,从缩略图5425到缩略图5435的全部六个缩略图都以浅淡的高亮(thinhighlight)来显示。另外,应用在图像显示区内以相等的尺寸来显示这六个图像。阶段5530示出了少一个选定缩略图的相同结果。因为应用在图像显示区5415内只显示五个图像,所以两个图像被显示为中心沿着底行,但是具有与沿顶行显示的其他图像相同的尺寸。可从这两个图像明显看出,某些实施例在图像显示区内按照缩略图在缩略图显示区内显示的顺序来显示图像(进而,该顺序是图像在合集数据结构内存储的顺序)。

除了多点触摸区块选择之外,某些实施例还允许用户长按缩略图以便选择缩略图作为一组选定图像中的一个。当用户只是敲击缩略图时,这会导致对将作为单独的选定图像的相应图像的选择。另一方面,当用户按住该输入(例如,在触摸屏上按下达阈值持续时间)时,应用保持对任何之前选定的图像的选择并且将缩略图添加到选定图像集合中。

图56在概念上示出了用于将在未选定缩略图上的用户输入转译为对缩略图的选择的某些实施例的处理5600。用户同样可以敲击或长按已选中的缩略图(该缩略图可以是主选择或次选择),并且这些输入将在下文参照图66进行描述。另外,虽然该处理被描述为响应于触摸屏输入,但是本领域技术人员应当意识到,某些实施例实现用于非触摸屏输入的类似处理(例如,以鼠标点击代替敲击,以及以鼠标按钮的长按代替在触摸屏上的长按)。图56将参照图57来描述,该图57示出了在gui5400中经由六个阶段5710-5760的各种选择输入。

如图所示,处理5600首先开始接收(在5605)在缩略图显示区内对未选定的缩略图的单点触摸输入。在某些实施例中,应用具有用于解决在缩略图显示区上的全部输入的单个处理。在其他实施例中,应用接收来自触摸屏装置的按照用于给出输入类型(例如,敲击、按住、扫动等)和屏幕位置的形式的多点触摸信息。应用然后基于其当前状态将该事件(输入和位置)转化成要采取的动作(例如,选择项目、滑动显示区、执行编辑等)。但是,这种在概念上的处理只处理对在缩略图显示区内的未选定的缩略图上的单点触摸输入(即,敲击或按住)的接收。

然后,该处理识别出(在5610)与触摸输入关联的未选定的缩略图。如同以上参照图53所描述的,某些实施例使每个缩略图与特定的二维屏幕像素阵列关联,该屏幕像素阵列在缩略图滚动通过显示区时改变。当用户在缩略图网格上触摸屏幕时,该触摸输入被转译成一组像素值(例如,特定半径的圆形、特定边长的方形等)。然后,应用将这些像素值与缩略图的像素值进行比较以便确定用户正在选择哪个缩略图。某些实施例识别出与触摸输入像素的最大的部分对应的缩略图。

然后,该处理确定(在5615)输入是否已经被从触摸屏上去除。在该概念上的处理中,应用要在敲击与按住之间作出决定,而触摸屏装置给应用提供关于触摸屏的特定部分正接收触摸输入的基础数据。如上所述,在某些实施例中,在敲击与按住之间的区分在装置层进行(例如,通过在装置的操作系统内的框架),并且应用实际上应具有用于处理这些不同输入的几个不同的事件驱动型处理。

当输入还没有被从触摸屏上去除时,处理确定(在5620)输入是否已经存在达阈值持续时间。该持续时间是用户必须保持与触摸屏接触以便使输入被认定为长按而不是敲击的时间长度。当按住的阈值持续时间还没有达到时,应用返回到5615。实质上,这些两个操作形成在敲击(如果处理确定用户在达到阈值持续时间之前已经从触摸屏上去除输入)与按住(如果在输入仍然存在的情况下达到了持续时间)之间的确定。如上所述,某些实施例接收这个来自应用运行于其上的装置的框架的确定。

当输入在阈值持续时间之前从触摸屏上去除时,处理选择(在5625)所识别的缩略图并且去除(在5630)对任何其他缩略图的选择。也就是,应用使所识别的缩略图成为唯一选择的缩略图。然后,该处理在图像显示区内将与缩略图关联的图像显示(在5635)为单独的图像。然后处理结束。

图57的第一阶段5710示出了第一图像显示于图像显示区5415内且其相应的缩略图5705被高亮显示为主选择的gui5400。如图所示,在该阶段,用户以敲击输入来选择缩略图5715。第二阶段5720示出:该敲击选择的结果是应用现在将缩略图5715高亮显示为主选择,缩略图5705不再高亮显示。另外,与缩略图5715对应的图像5717被显示于图像显示区5415内,因为这是唯一选择的图像。

返回到图56,当输入在缩略图上存在达阈值持续时间时,应用选择(在5640)所识别的缩略图。然后,应用显示(在5645)与缩略图关联的图像,以及任何其他选定图像。也就是,一个或多个图像可能已经被选中,并且应用在图像显示区内显示所有这些图像。然后处理结束。

第二阶段5720示出了用户以长按选择来选择缩略图5725(由小的时钟图标指示,该时钟图标是在概念上示出的并且不是gui的一部分)。结果,在第三阶段5730中,应用显示图像5717和图像5727两者(该图像5727对应于缩略图5725)。而且,缩略图5715和缩略图5725两者都高亮显示为选中的。但是,应用使用较浅的选择指示高亮,以便指出这两个缩略图都是次选择并且在此时不存在主选择。两个图像5717和5727按照保持纵横比(即,不扭曲或裁切图像)且最大化图像尺寸的方式来显示,这将在下文于分部c内解释。

第三阶段5730还示出:用户再次执行长按选择,此次在缩略图5735上。在阶段5740中,应用将图像5737添加到图像显示区,按需要在显示区内重排其他图像。而且,缩略图5735现在以次选择高亮显示来高亮显示,与其他两个缩略图相同。

另外,用户还在该阶段执行多点触摸区块选择,敲击缩略图5745和5755。如同在阶段5750中所示,这导致除了这两个敲击的缩略图之外对缩略图5765的选定。结果,在阶段5750中,6个缩略图现在以较浅的选择指示来高亮显示,并且相应的6个图像被显示于图像显示区内。应用与之前的阶段相比已经减小了这些图像的尺寸以便使这6个图像以相同的视觉加权适合于显示区内。

在阶段5750,用户敲击未选定的缩略图5775。阶段5760示出了该选择的结果,图像5777单独地显示于图像显示区内。其他6个缩略图的选中被去除,并且应用显示了在缩略图5775上的较深的选择指示的高亮显示。

图58示出了在某些实施例的移动电话和媒体播放器的gui1700中的相似的选择操作集合。第一阶段5810示出了用户对缩略图5805进行敲击选择,导致相应的图像显示于显示区1715内。第二阶段5820示出了对缩略图5815的长按选择,使得相应的图像随后被添加到图像显示区。然后,用户对缩略图5825和5835进行同时的敲击选择,使得与这些缩略图以及它们之间的缩略图5845对应的图像被全部添加到图像显示区。

c.显示多个图像

前面的分部描述了在某些实施例中可用来选择多个图像用于在图像显示区内同时显示的不同动作。如同简要描述的,当在图像显示区内显示多个图像时,某些实施例保持每个图像的纵横比,同时还赋予每个图像相同的视觉加权(例如,屏幕像素的数量)。

图59在概念上示出了用于同时在图像显示区内显示多个图像的某些实施例的处理5900。图59将参照图60-65来描述,图60-65概念化了由某些实施例执行以便以相同的视觉加权显示具有不同纵横比的四个图像的计算。

如图所示,处理5900首先开始接收(在5905)n个图像以在图像显示区内显示。在这种情况下,n是非零正整数(即,1,2,3等)。当只有单个图像时,某些实施例不执行处理5900,但该处理确实产生了一个图像按完全尺寸来显示的正确结果。这些图像可以通过上述分部所描述的任意用户交互(例如,区块选择、对识别相似图像的请求,或者导致对多个图像的选择及显示的其他选择),以及本文未描述的任何其他交互来接收。

图60示出了用户对四个缩略图进行区块选择的gui6000。gui6000包括图像显示区6005,该括图像显示区6005在扩大的视图中被示为具有4∶3的纵横比。在某些实施例中,图像显示区将改变尺寸(即,像素数)和纵横比(取决于gui显示于其上的装置的显示屏幕的分辨率和屏幕纵横比),缩略图显示区的尺寸,其他gui区是否占用了部分显示等。

当接收到在图像显示区内显示图像的命令时,处理计算(在5910)所接收的图像的平均纵横比。该平均纵横比被用作在图像将适合于其内的图像显示区中的区域集合的纵横比。如图61所示,四个选定图像6105-6120具有4∶3、3∶4、16∶9和4∶3的纵横比。图像6105和6120具有相同的纵横比,但是具有不同的尺寸。在许多情况下,图像将全都具有比可利用的屏幕像素的数量大的分辨率(即,界定像素的数量),尤其是在多个图像被显示时更是如此。因而,每个图像被分配屏幕的一个较小的部分。图像6105-6120的平均纵横比为[(4/3)+(3/4)+(16/9)+(4/3)]/4=187/144,如区域6125所示。

处理5900然后将图像显示区划分(在5915)成使用于具有算得的平均纵横比的至少n个图像的每个图像的屏幕面积最大化的多个行和列。由于显示区域将全都具有相同的尺寸,因而装填区域的最有效的方式将采用网格的形式。因而,如果有五个图像,则区域的网格可以是3x2个网格、2x3个网格,或者图像被极端地拉长为1x5或5x1个网格。

为了识别出最优解决方案,某些实施例通过能够用来容纳n个图像的可能的行/列组合的空间来测试以便确定哪种组合在平均纵横比下给出每个区域的最大可能面积。某些实施例从一列开始并且重复直到达到要显示的图像数量(但某些实施例对列数上限进行了限定)。

对于特定的列数,应用确定需要显示全部图像的行数。例如,对于三个列和五个图像,将需要两行,但有一个区域没有使用。应用然后对于特定的列数和行数将尺寸最大的区域的宽度计算为查看区的总宽度除以列数(可能会减去一个常数以确保在显示中的图像之间至少将存在一个小间隙)。应用还将尺寸最大的区域的高度计算为查看区的总高度除以行数(同样,可能会减去一个常数)。应用然后确定具有适合于该最大区域内的平均纵横比的区域的尺寸。所使用的列数是使该区域的面积最大化的列数。

图62示出:在4∶3的图像显示区6005内的纵横比为187∶144的区域6125的理想列数是2,具有两个行。实际上,因为187∶144很接近4∶3,所以该网格几乎填充了整个面积。

然后,应用基于行数和列数来计算(在5920)每个图像可利用的面积。在某些实施例中,该计算是用来在之前段落中所描述的操作5915中确定行数和列数的尺寸最大的区域。在该实例中,该面积是在图像显示区6005内的区域6125的面积。

然后,应用识别出(在5925)将在适合于可利用的面积(即,网格区域的尺寸)时具有最小面积的图像。这一般地将是具有与平均纵横比最不同的纵横比的图像。在某些实施例中,为了识别该图像,应用计算每个图像的高度和宽度以便保持图像的纵横比并且使整个图像适合于网格区域内。对于具有比平均值大的纵横比的图像,宽度将等于网格区域的宽度,同时高度将相对于网格区域的高度减少。对于具有比平均值小的纵横比的图像,高度将等于网格区域的高度,而宽度相对于网格区域的宽度减少。

图63在网格区域6125内示出了纵横比不同的图像。4∶3的图像6105占用网格区域的97%(并且其他4∶3的图像6120占用相同的部分),16∶9的图像6115占用网格区域的73%,并且3∶4的图像6110占用网格区域的58%。因此,图像6110被识别为在适合于网格区域内时具有最小面积的图像。因此,为了让每个图像使用相同数量的像素,每个图像将占用网格区域面积的58%。

然后,该处理计算(在5930)每个图像的宽度和高度以便保持纵横比并且使用在网格区域内的与在操作5925确定的具有最小面积的图像相同的面积。对于特定的图像,某些实施例将宽度计算为最小面积与图像的纵横比的乘积的平方根。特定图像的高度然后被计算为宽度除以纵横比。

图64示出了在适合于在图像显示区内占用与图像6110相同的面积时的图像6105(该图像6105在尺寸上等同于图像6120)和6115的尺寸。这两个图像都被向下调整尺寸以仅占用区域6125的58%。为了使用示例数字,如果区域6125具有374像素的宽度以及288像素的高度,则要显示的图像6105的尺寸应近似为288像素x216像素。图像6115的尺寸应近似为333像素x187像素。图像6110(在图63中示出)的尺寸应近似为216像素x288像素。

处理5900将(在5935)每个图像分配到它们在显示区内的区域。在某些实施例中,应用按顺序(例如,它们在缩略图显示区内的顺序,该顺序进而由它们在合集内的顺序决定)取得图像并且将它们分配到网格区域。另外,当在最后一行中的某些网格区域没有使用时,应用去除这些网格区域并且使底行的网格区域居中。

最后,处理在图像显示区中按指定的尺寸将图像显示(在5940)于指定的区域内。图65示出了显示于图像显示区6005内的图像6105-6120。可以看出,图像全都看起来(例如,对于人类观察者)是相同尺寸的,因为它们每个都具有相同数量的像素。这给出了有利的结果:没有一个图像只是因为比其他图像大而在图像的比较中看起来更为优选。由于多个图像显示特征的常见使用是用户确定相同场景的哪几个照片要保留,因而使图像看起来是尺寸相同的会给用户提供显著的益处。

v.在一个或多个图像上的操作

以上的部分iv描述了在某些实施例中可用来选择一个或多个图像的各种技术,包括自动地识别相似图像分组、缩略图的区块选择,以及长按缩略图以便将相应的图像添加到所选图像的分组中。下面这部分描述可以用来对图像施加标签,在选择中轮转图像,以及选择和取消选择个体图像的各种操作。

a.选择和取消选择操作

图66在概念上示出了用于描述与图像的选择/取消选择以及所选图像的查看相关的某些实施例的gui的不同状态以及在这些状态之间转变的状态图6600。本领域技术人员应当意识到,某些实施例的gui会具有与所有不同类型的输入事件相关的许多不同的状态,并且状态图6600特别地聚焦于这些事件的子集。状态图6600将部分地参照图67-71来描述,图67-71示出了各种选择和取消选择操作。状态图6600以及附图描述并示出了用于改变gui的状态的触摸交互。本领域技术人员应当意识到,对于相似的选择操作同样可以使用各种别的交互,例如,光标控制器姿态和按钮点击、键盘输入,或者触摸板/轨迹板输入。在该图中,许多转变条件被示为用户交互(例如,“左向扫动”)。本领域技术人员应当意识到,状态转变响应于由图像查看和编辑应用接收到此类用户输入而发生。

当只有一个图像被选择时,gui处于状态6605,在图像显示区内显示该单个选中图像并且在相应的缩略图上显示主选择指示符。如同前一部分所示,当只有一个图像显示于图像显示区内时,某些实施例使用在缩略图上的主选择指示符来指示,而当缩略图为多个选中图像之一时,还使用在缩略图上次选择指示符来指示。在某些实施例中,两种选择指示符都在缩略图的边界周围高亮显示,主选择指示符为比次选择指示符更深的高亮显示。

在一个图像被选择的情况下,用户能够通过在未选定的缩略图上敲击来选择不同的图像。当用户敲击未选定的缩略图(在本例中为除与所显示的图像对应的缩略图外的任何其他缩略图)时,应用转变为状态6607以将所敲击的缩略图(及其相应的图像)设置为新的选定图像,然后转变回到状态6605。另外,用户能够以左向和右向扫动手势来轮转图像。如图所示,当应用接收到右向扫动手势时,应用转变为状态6608以将在合集中的前一图像设置为新的选定图像。同样地,当应用接收到左向扫动手势时,它转变为状态6609以将合集中的下一图像设置为新的选定图像。在任一种此类变化之后,应用都转变回到6605,新的选定图像被显示于图像显示区内。当接收这些扫动手势之一时,某些实施例使用滑动动画来示出之前选定的图像滑动离开显示,新的选定图像滑动到显示之上(若为左向手势则从右侧滑动到显示之上,而若为右向手势则从左侧滑动到显示之上)。其他实施例使用其他动画来示出图像的改变,或者只是在完全没有任何动画的情况下替换在图像显示区内的图像。图33示出了用于轮转合集中的图像的此类扫动手势的实例。

在gui处于状态6605的情况下,用户能够将一个或多个图像添加到图像显示区。这些图像可以替换当前选定的图像(例如,如果用户在未选定的图像上双击以显示与该图像相似的所有图像),或者被添加于当前选定的图像旁边(例如,如果用户在缩略图上长按)。当用户执行这些动作之一以将一个或多个图像添加到预览显示区时,gui转变为状态6610并且在图像显示区内显示多个所选图像并在相应的缩略图上显示次选择指示符。此类转变的众多实例被示于上述部分内(例如,图44、54、55和57)。

一旦处于状态6610(多个图像被选中并被显示),如果用户敲击未选定的缩略图,则gui转变为状态6607以将所敲击的缩略图设置为唯一选定的图像,并然后返回到状态6605,如图57的阶段5750和5760所示。另外,当处于状态6610时,用户能够按下并按住在缩略图显示区内的一个缩略图。当特定的缩略图是之前选定的缩略图之一时,应用转变为状态6615以从选定缩略图的集合中去除特定的缩略图。如果只有一个缩略图保持为选中的,则gui转变为状态6605以只显示这个选定图像。否则,gui转变回到状态6610以显示所选图像,这些选定图像不再包括特定的缩略图。另外,如果用户在图像显示区内的特定图像上执行向下扫动手势,则这将具有与从选定图像集合中移除特定图像相同的作用。另一方面,如同前一部分所示,当特定的缩略图当前没有被选择时,则应用转变为6617以将与缩略图对应的图像添加到所选图像的当前集合,然后转变回到6610,附加的图像被显示于图像显示区内。图57的阶段5730和5740示出了这样的操作。

另外,在状态6610,当用户敲击选定的缩略图之一或者在图像显示区内的显示图像之一时,gui转变为状态6620。在状态6620,应用在预览区内显示单个活动图像,主选择指示符在其相应的缩略图上,而次选择指示符在与其他选定图像对应的缩略图上。图67示出了经由gui6700的两个阶段6710和6720的这种转变。gui6700包括缩略图显示区6705和图像显示区6715。在第一阶段6710,gui在图像显示区6715内显示三个图像6725-6735,相应的缩略图6740-6750被高亮显示于缩略图显示区6705内。

同样地,在第一阶段6710中,用户敲击图像6730。第二阶段6720示出了该交互的结果,图像6730占用整个图像显示区6715。而且,与图像6730对应的缩略图6745现在以比缩略图6740和6750重的高亮显示作为边界,该缩略图6740和6750保持为选定的。某些实施例以动画显示该转变。例如,在某些实施例中,应用显示了图像在多个显示图像当中从其位置扩大成在至少一个方向上使用完全图像显示区的较大图像。另外,虽然图67的第二阶段6720示出了占用几乎整个图像显示区的图像6730,但是在某些实施例中应用显示了在主显示图像之后的其他选定图像的褪色变暗的版本。当主显示图像没有占用图像显示区的某些部分(例如,由于在图像与显示区之间的纵横比差异)时,其他所选图像(形式为褪色变暗的)的某些部分在显示中将是可见的。

在下面的讨论中,主选定图像将称为活动图像,而在选择中的全部图像,不管是主选择还是次选择之一,都将称为选定的。在gui处于状态6620的情况下,用户能够执行各种动作以轮转图像(例如,比较各种照片以识别出集合中的最佳照片)。如图所示,当应用接收到在图像显示区上的右向扫动手势时,在转变回到状态6620以显示新的活动图像之前,gui转变为状态6625以将前一选定图像按合集顺序设置为新的活动图像。某些实施例以动画显示该转变;例如,通过使之前的活动图像最小化回到其在图像显示区内的位置(即,在所有选定图像都同时显示时由图像占用的位置),同时使新的活动图像扩大到其较大的显示中。

其他实施例使用滑动动画的各种形式。在某些实施例中,应用使这个新的活动图像滑动到显示上,同时使前一活动图像滑动离开。在其他实施例中,新的活动图像看起来为在前一活动图像的下方,使得图像看起来更像是前一图像滑动离开的。还有其他实施例将新的活动图像滑动到显示之上,位于旧的活动图像上。在某些实施例中,关于应用如何显示该转变的选择留给用户决定。

图68示出了经由五个阶段6810-6850的在用户界面6700中的一系列这样的右向扫动手势。第一阶段6810示出了状态与图67的阶段6720相同的gui6700。如图所示,用户已经开始以一个手指接触触摸屏。在下一阶段6820中,用户已经开始向右扫动其手指,促使图像6730向右滑动离开屏幕并使底下的图像6725显现。该扫动手势的结果在阶段6830中示出,图像6725现在显示于图像显示区6715内。另外,相应的缩略图6740现在以深的高亮显示为边界,指示主选择,而其他选择的缩略图以较浅的高亮显示为边界。

另外,在该阶段,用户再次接触触摸屏,并且第四阶段6840示出:用户作出向右的其他扫动手势。这促使图像6725向右滑动离开屏幕,使底下的图像6735显现。该扫动手势的结果在阶段6850中示出,图像6735现在被显示于图像显示区6715内。另外,相应的缩略图6750现在以主选择指示符的深的高亮显示为边界,而其他选择的缩略图以较浅的高亮显示为边界。

与右向扫动手势类似,当应用处于状态6620并且接收到在图像显示区上的左向扫动手势时,gui在转变回到状态6620以显示新的活动图像之前转变为状态6630以将下一选定图像按合集顺序设置为新的活动图像。某些实施例以动画显示该转变;例如,通过使之前的活动图像最小化回到其在图像显示区内的位置(即,图像在所有选定图像都同时显示时占用的位置),同时使新的活动图像扩大到其较大的显示中。

其他实施例使用滑动动画的各种形式。在某些实施例中,应用使这个新的活动图像滑动到显示上,同时使前一活动图像滑动离开。在其他实施例中,新的活动图像看起来为在前一活动图像的下方,使得图像看起来更像是前一图像滑动离开的。还有其他实施例将新的活动图像滑动到显示之上,位于旧的活动图像上。在某些实施例中,关于应用如何显示图像的轮转的选择留给用户决定。

图69示出了经由三个阶段6910-6930的在gui6700中的这样的左向扫动手势。第一阶段6910示出了状态与图68的阶段6850相同的gui6700,图像6735作为在图像显示区内的活动图像并且其相应的缩略图6750以重的高亮显示选定。如图所示,用户已经开始以一个手指接触触摸屏。在下一阶段6920中,用户已经开始向左扫动其手指,促使图像6735向左滑动离开屏幕并使底下的图像6725显现。该扫动手势的结果在阶段6930中示出,图像6725现在被显示于图像显示区6715内。另外,相应的缩略图6740现在以深的高亮显示为边界,指示主选择,而其他选择的缩略图以较浅的高亮显示为边界。

如同这些图所示的,在某些实施例中应用将允许用户以扫动手势来轮转选定图像的集合,包括从集合中的最后一个图像扫动到集合中的第一个图像,而不是在用户达到集合末尾时阻止一个方向上的扫动手势。

除了响应于用户向左和向右扫动而轮转选定图像的集合之外,某些实施例还允许用户经由扫动手势从集合中去除图像。如同状态图6600所示,当应用在状态6620下接收到向下扫动的手势时,gui转变为状态6635,以从所选图像的集合中去除活动图像并且将所选图像的集合中的下一图像设置为新的活动图像。很像右向及左向扫动手势,在某些实施例中应用以动画显示转变;例如,通过使之前的活动图像最小化,同时使新的活动图像扩大到较大的显示中。

其他实施例使用滑动动画的各种形式;在某些实施例中,应用使新的活动图像滑动到显示之上,同时使前一活动图像滑动离开显示的底部。在其他实施例中,新的活动图像看起来为在前一活动图像的下方,使得图像看起来更像是前一图像滑动离开的。还有其他实施例将新的活动图像滑动到显示之上,位于旧的活动图像上。在某些实施例中,关于应用如何显示该转变的选择留给用户决定。

当在所选图像的集合中只有两个图像时,向下扫动将会只留下一个选定图像,在这种情况下gui会转变回到状态6605,单个选定图像被显示于图像显示区内。另一方面,当在移除活动图像之后还有至少两个图像保持已选时,则gui返回到状态6620,集合中的下一图像作为活动图像。对于所选图像,应用的某些实施例重新计算它们在图像显示区内的尺寸和位置并且将非活动的选定图像的褪色变暗版本显示于它们在活动图像后面的新位置内。

图70示出了经由三个阶段7010-7030的在用户界面6700中的这样的向下扫动手势。第一阶段7010示出了状态与前一图形的阶段6930相同的gui6700,图像6725作为在图像显示区内的活动图像并且其相应的缩略图6740以重的高亮显示选定。如图所示,用户已经开始以一个手指接触触摸屏。在下一阶段7020中,用户已经开始向下扫动其手指,促使图像6725向下滑动离开屏幕并且使底下的图像6730显现。该扫动手势的结果在阶段7030中示出,图像6730现在被显示于图像显示区6715内。另外,相应的缩略图6745现在以深的高亮显示为边界,指示主选择,而缩略图6740不再高亮显示,因为它已被取消选定。

如图所示,在某些实施例中,用户按下并按住活动图像的缩略图具有以下相同的效果:促使gui转变为状态6635以从所选图像的集合中去除活动图像并且将集合中的下一图像设置为活动图像。另外,当用户按下并按住选定的但非活动的缩略图(即,相应的图像不是显示的图像)时,应用转变为6640以将相应的图像从所选图像的集合中去除。如同在阶段6635一样,应用或者转变为状态6605(如果只有活动图像保持为选中)或者返回到状态6620(如果有多个图像保持为选中)。当应用转变回到状态6620时,应用的某些实施例重新计算保持为选中的图像在图像显示区内的尺寸和位置,并且将非活动的选定图像的褪色变暗版本显示于它们在活动图像后面的新位置内。

另外,当用户按下并按住未选定的缩略图时,应用转变为状态6617,以将相应的图像添加到所选图像的集合中。如图所示,某些实施例还在用户将新的图像添加到集合中时转变回到状态6610。另一方面,某些实施例选择图像,但保持活动图像的完全查看器显示(full-viewerdisplay)。

如图66所示,在gui处于状态6620的情况下,当用户敲击未选定的缩略图时,应用去除对全部其他图像的选择并且转变为状态6607,以将新选择的图像(与所敲击的缩略图对应)设置为单独的选定图像。然后,应用转变回到状态6605以在图像显示区内显示新选择的图像。当用户敲击活动缩略图时,这促使gui转变回到状态6610,所有选定图像都显示于图像显示区内,从与所敲击的缩略图对应的图像去除活动指示。最后,某些实施例允许用户通过敲击与非活动图像之一对应的选定缩略图在集合的不同图像之间切换活动图像。如图所示,当用户敲击选定的但非活动的缩略图时,应用转变为状态6645以将与所敲击的缩略图对应的图像设置为新的活动图像,然后转变回到状态6620。

图71示出了经由四个阶段7110-7140在gui6700中用户对选定的缩略图敲击的实例。第一阶段7110示出了状态与图67的第一阶段6710相同的gui6700,三个图像6725-6735全都显示于图像显示区内并且它们相应的缩略图6740-6750以较浅的高亮显示选定。

同样,在该阶段7110中,用户在缩略图6740上敲击触摸屏。第二阶段7120示出了该交互的结果,相应的图像6725(现在为活动图像)占用整个图像显示区6715。另外,用户所敲击的缩略图6740现在被显示为以比其他选择的缩略图重的高亮显示为边界。

在该阶段7120,用户在缩略图6745上敲击触摸屏。第三阶段7130示出了该交互的结果,相应的图像6730(现在为活动图像)占用整个图像显示区6715。另外,用户所敲击的缩略图6745现在被显示为以较重的高亮显示为边界。这些阶段示出:无论gui是处于状态6610还是处于状态6620,敲击选定的但非活动的缩略图都将使相应的图像成为活动图像。

另外,在阶段7130,用户再次敲击活动图像的缩略图6745。该交互的结果在阶段7140中示出,应用再次显示全部三个图像6725-6735,其中没有活动图像,并且因此对于任何缩略图都没有主选择指示符。这对阶段示出从状态6620到状态6610的转变,其中多个图像被同时显示。

b.标注图像

以上部分描述了在某些实施例的图像查看应用中对一个或多个图像执行的各种选择和取消选择操作。状态图6600包括三种主选择状态6605、6610和6620。在某些实施例中,应用对其施加用户选定的标签的图像取决于gui在用户选择标签时处于这三种状态中的哪一种状态。图72在概念上示出了与在这三种不同状态下的标签施加相关的某些实施例的gui的状态图。图72将参照图73-77来描述,图73-77示出了不同标签对一个或多个图像的施加。

如图所示,状态图示出了状态6605(只有一个图像被选中)、6610(多个图像被选中并被显示),以及6620(多个图像被选中,只有活动图像被显示),以及在这些状态之间的转变(在上文参照图66进行了描述)。另外,图72显示了由在这三种不同状态下对标签ui项目的选择引起的状态。如同上文参照图14所描述的,某些实施例包括用于将不同的标签施加于一个或多个图像的gui项目集合。这些标签可以包括最喜爱标签(即,用于指示用户特别喜欢的图像)、标记(即,用于指示用户想要以后再次查看的图像),以及隐藏标签(即,用于从显示于缩略图显示区内的图像集合中去除不想要的图像)。在某些实施例中,这些标签与所标注的图像的数据结构一起存储,并且可以被用来填充具有该标签的图像的具体相册。

如图66所示,当gui处于状态6605并且用户选择要施加于图像的标签时,gui转变为状态7205以将所选标签施加于当前选定的唯一图像。gui然后转变回到状态6605。在某些实施例中,当标签是隐藏图像标签时,gui还从显示中去除图像并且选择要选择和显示的在合集中的下一图像。其他实施例并不立即从显示中去除隐藏的图像,而是等待用户首先查看不同的图像。

当gui处于状态6610并且用户选择要施加的标签时,gui转变为状态7210以将所选标签施加于当前选定的所有图像。gui然后转变回到状态6610。最后,当gui处于状态6620并且用户选择要施加的标签时,gui转变为状态7220以将所选标签施加于唯一的活动图像而不是当前选定的所有图像。gui然后转变回到状态6620。

图73-78示出了在某些实施例的图像查看应用中各种标签对图像的施加。图73示出了经由gui7300的四个阶段7310-7300的隐藏图像标签的施加。除了各种gui项目集合之外,gui7300还包括图像显示区7305和图像显示区7315。这些gui项目包括标记按钮7325、最喜爱按钮7332及隐藏图像按钮7335。

在第一阶段7310中,图像7342被显示于图像显示区7315内并且相应的缩略图7345被选择。在该阶段,用户选择隐藏图像按钮7335,促使该按钮变为高亮显示的。在某些实施例中,应用以动画显示隐藏标签对图像的施加。第二阶段7320示出了由某些实施例用来指示隐藏图像标签对在图像显示区内的图像的施加的动画。隐藏图像图标7350(x)被显示为离开图像,然后返回到图像中(即,成为图像的性质)。

第三阶段7330示出:应用以叠置于缩略图上的隐藏图标7355(x)来标记隐藏图像7342的相应缩略图7345。另外,在该阶段,用户选择不同的缩略图7360。第四阶段7340示出:与缩略图对应的图像7360现在被显示。另外,应用已经从缩略图显示区7305中去除了隐藏图像的缩略图7345,并且相应地在显示区内重排了缩略图。如图所示,在某些实施例中,应用等待,直到用户导航到了不同的缩略图,以从所显示的缩略图集合中去除隐藏的缩略图。

图74示出了经由gui7400的四个阶段7410-7440的标记图像标签的施加。gui7400包括与gui7300相同的特征——缩略图显示区7405、图像显示区7415及各种gui项目,包括标记按钮7425。另外,gui包括标签过滤按钮7435,该标签过滤按钮7435当前指示在当前选定的合集中的15个图像没有一个被标注。在某些实施例中,该按钮7435被用来识别出应用应当将合集中的哪些图像呈现于缩略图显示区内。此刻,三个图像被选择(对应于缩略图7445-7455),但是只有一个选定图像(图像7460)被显示于图像显示区内。

在第一阶段7410,用户选择标记按钮7425,促使按钮变为高亮显示的。在某些实施例中,应用以动画显示对图像的标记图像标签的施加。而且,如同以上参照图66所示的,当多个图像被选择并且所选图像之一为活动时,应用只对活动图像施加标签(在本例中为图像7460)。

第二及第三阶段7420和7430示出了由某些实施例用来指示对在图像显示区内的图像的标记标签的施加的动画。标记图标7465被显示为离开活动图像,然后返回到图像中(即,成为图像的性质)。

在第四阶段7440中,应用在缩略图7445上显示标记图标7470,用于指示该图像是带标记的。当在缩略图显示区内显示缩略图时,某些实施例检查用于合集中的图像的图像数据结构以便确定图像是否具有任何标签。如果图像存在标记标签,则应用在图像的缩略图上显示标记。标记按钮7425保持为高亮显示的,用于指示当前活动的图像带标记。在某些实施例中,用户能够在这种状态下选择标记按钮,以便去除活动图像的标记。另外,在该阶段,标签过滤按钮7435现在指示在合集中的15个图像中的一个已经带有标记。

图75示出了经由gui7400的四个阶段7510-7540对多个图像的标记图像标签的施加。如图所示,在第一阶段7510,标记图标7470被显示于缩略图7445上。但是,图像显示区显示三个选定图像7505、7515和7525,并且与这些图像对应的缩略图被选择。在该阶段,用户选择标记按钮7425。如同以上参照图66所示的,当多个图像被显示于图像显示区内时,应用对所有这些选定图像施加标签。在某些实施例中,应用以动画显示对图像的标记图像标签的施加。

第二及第三阶段7520和7530示出了用于指示对在图像显示区内的图像的标记图像标签的施加的某些实施例的动画。应用显示了标记图像标签的多个实例,一个实例示为离开每个显示的图像,然后返回到图像中(即,成为图像的性质)。

在第四阶段7540中,应用现在于缩略图7535、7450和7455中的每个缩略图上显示标记图标7570,用于指示图像7505、7515和7525是带标记的。标记按钮7425保持为高亮显示的,以指示当前显示的图像是全都带标记的。另外,标签过滤按钮7435现在指示在合集中的15个图像中的4个图像已经施加了标记标签。

图76示出了经由gui7600的三个阶段7610-7630的标签过滤按钮7435的使用。在第一阶段7610中,按钮7435指示15个图像中的4个图像是带标记的,并且应用在四个缩略图7445、7535、7450和7455上显示标记图标。无标记的图像7605当前被显示于图像显示区内,并且因此应用没有高亮显示标记按钮7425。在第一阶段7610中,用户敲击按钮7435。

如同第二阶段7620所示,这导致菜单7615的显示。这菜单允许用户基于施加于图像的标签在所选合集内的不同图像集合之间继续选择。如图所示,选项是“所有照片”(在某些实施例中不包括隐藏的照片)、“带标记的照片”、“编辑的照片”、“隐藏的照片”和“所有及隐藏的照片”。带标记的、编辑的、及隐藏的照片选项促使只显示具有这些标签的图像,而所有及隐藏的照片选项使隐藏的图像连同合集中的其余图像一起成为可见的。

在第二阶段7620中,用户选择“带标记的照片”选项。第三阶段7630示出了该选择的结果,应用只显示带标记的图像的缩略图7445、7535、7450和7455。实质上,应用对合集中的图像施加过滤器,只有具有标记标签的图像通过该过滤器。应用现在还在图像显示区内显示图像7460,该图像7460是所标注的图像之一。

图77示出了经由gui7300的四个阶段7710-7740对图像的最喜爱标签的施加,该gui7300在上文参照图73来描述。在这种情况下,作为两个选定图像之一的图像7705是活动。在第一阶段7710,用户选择最喜爱按钮7332,促使按钮变为高亮显示的。在某些实施例中,应用以动画显示最喜爱标签对图像的施加。而且,如同参照图66所示的,当多个图像被选择并且所选图像之一为活动时(这是本图的情形),应用只对活动图像施加标签。

第二及第三阶段7720和7730示出了由某些实施例用来指示对在图像显示区内的图像施加最喜爱标签的动画。最喜爱图标7715被显示为离开活动图像,然后返回到图像中(即,成为图像的性质)。

在第四阶段7740中,最喜爱按钮7332保持为高亮显示的,以指示活动图像是最喜爱的。如同标记图像标签一样,用户能够在该状态下选择最喜爱按钮以便从活动图像中去除最喜爱标签。在某些实施例中,应用没有在缩略图上显示用于指示哪些图像为最喜爱图像的图标(如本图所示)。但是,如同将在下文描述的,应用却保持了最喜爱图像的单独合集并且将标注有最喜爱标签的图像添加到该合集中。

在某些实施例中,应用防止图像被标注有最喜爱标签和隐藏图像标签两者。当用户为标注为隐藏的图像选择最喜爱按钮时,应用施加最喜爱标签,同时还去除隐藏图像标签。类似地,当用户隐藏最喜爱图像时,应用从图像中去除最喜爱标签。

图78示出了经由gui7800的四个阶段7810-7840最喜爱标签对多个图像的施加。如图所示,在第一阶段7810,应用在图像显示区内显示了图像7805、7815和7825,相应的缩略图被选择。在该阶段,用户选择最喜爱按钮7332。如同以上参照图66所示的,当多个图像被显示于图像显示区内时,应用对所有这些选定图像施加标签。在某些实施例中,应用以动画显示最喜爱图像标签对图像的施加。

第二及第三阶段7820和7830示出了用于指示对在图像显示区内的图像施加最喜爱标签的某些实施例的动画。应用显示了最喜爱标签的多个实例,一个实例示为离开每个显示的图像,然后返回到图像中(即,成为图像的性质)。在第四阶段7340中,最喜爱按钮7332保持为高亮显示的,以指示所选图像被标记为最喜爱的。如上图所示,缩略图显示并没有受到最喜爱标签的影响。

如同参照最喜爱标签所提及的,某些实施例为应用能够施加于图像的某些或所有标签创建单独的合集。在某些实施例中,只创建最喜爱合集,而其他实施例为最喜爱图像、标记图像、隐藏的图像及编辑的图像或者它们的某种组合创建合集。

图79在概念上示出了由某些实施例的应用在接收到要施加于图像的标签时执行的处理7900。如图所示,处理7900首先开始接收(在7905)对要施加于一个或多个图像的标签的选择。在某些实施例中,标签的选择可以通过用户选择一个标签按钮(例如,用于对图像加标记,隐藏图像,或者将图像标记为最喜爱的)或者通过编辑之前未编辑的图像而发生。

然后,该处理将选定的标签施加(在7910)于图像的数据结构。如同以上在图15中示出的,用于由某些实施例的应用存储的图像的数据结构包括用于对图像施加的任何标签的字段。在某些实施例中,为了施加标签,应用将用于特定标签的变量的值由0切换为1。

然后,该处理确定(在7915)具有所选标签的图像的合集是否已经存在。在某些实施例中,应用不创建空的合集,并且因而,例如,最喜爱相册直到至少一个图像已经被标记为最喜爱图像时才会存在。但是,其他实施例总是存储每个可能标签的合集,而不管应用是具有至少一个图像还是为空。

当所选标签的合集已经存在时,处理将新标注的图像添加(在7920)到之前已存在的具有特定标签的图像的合集。在某些实施例中,图像在合集的图像的有序系列末尾被添加到合集中。在其他实施例中,应用存储图像的整体顺序(例如,它们在所有照片合集中的顺序),并且该顺序被保持于所标注的图像的合集中。

另一方面,当对于特定的标签还不存在合集时,处理7900为所标注的图像创建(在7925)新合集。然后,该处理将新标注的图像添加(在7930)到新合集中。在某些实施例中,应用为特定的标签创建新合集的数据结构,具有诸如“最喜爱”之类的名称。应用然后将对新标注的图像的图像数据结构的引用添加到新创建的数据结构。在某些实施例中,所标注的图像的不同合集呈现为相册。

图80示出了用户经由gui7300的三个阶段8010-8030从相册到最喜爱图像的合集的导航。在第一阶段8010中,应用显示已经对其施加最喜爱标签的图像7705,由高亮显示的最喜爱按钮7735指示。同样地,在该阶段,用户选择返回按钮8005。

结果,第二阶段8020示出:应用现在显示合集组织gui8000,相册选项卡8015被高亮显示。应用当前存储两个相册,“相册1”和最喜爱相册。如图所示,用户在该阶段选择最喜爱相册。第三阶段8030示出了“最喜爱”作为选定合集的gui7300。由于只有四个图像已经被标记为最喜爱的,合集只包括这四个图像。在某些实施例中,当用户查看最喜爱相册,选择图像,并然后选择(高亮显示的)最喜爱按钮时,应用不仅从所选图像中去除最喜爱标签,而且从最喜爱合集中去除该图像并且不再显示该图像(使得标签对于具体的合集起着像隐藏图像标签一样的作用)。

c.查看图像信息

在某些实施例中,用户可能希望查看有关一个或多个图像的信息。某些实施例提供gui项目(或者提供键盘快捷键、菜单选项等),对该gui项目的选择会促使图像查看应用给出有关图像的信息。在某些实施例中,应用将该信息存储于图像的数据结构中或者使用来自数据结构的信息来访问所显示的信息。当多个图像被选择并被显示于图像显示区内时,某些实施例显示每个选定图像的单独信息,而其他实施例只显示所有选定图像共同拥有的信息。

图81示出了根据本发明的某些实施例的经由三个阶段8110-8130在gui7300中针对图像8105进行的对此类信息的访问。如图所示,在第一阶段8110,应用当前显示图像8105。在第二阶段8120中,用户选择信息按钮8115。

第三阶段8130示出了在用户选择信息按钮8115时出现的信息窗口8125。如图所示,窗口8125具有三个选项卡:信息选项卡、地图选项卡和评论选项卡。信息选项卡显示有关所选图像的信息,主要使用exif数据。当图像具有gps数据时,用户能够选择地图选项卡,以便查看示出图像被捕获的位置的地图。在某些实施例中,应用使用gps数据来访问地图数据的数据库并且下载在该gps位置周围的地图数据的特定区域。该数据库可以是运行应用的装置本地的数据库或者通过网络(例如,互联网)来访问的远程数据库。如同将下面在部分vi中描述的,当图像已经被上传到社会媒体或照片共享网站时,评论选项卡能够用来查看其他人对图像的评论,并且对共享的图像进行附加评论。

在信息选项卡内,某些实施例的应用显示了用以捕获图像的装置(canoneos-idsmarkiii),用来存储图像数据的图像文件的类型(jpeg),图像的分辨率(3072x4608)和文件尺寸(2.6mb),图像捕获的时间和日期(2012-03-04,12:10:17pm),以及图像捕获的位置(joshuatreenationalpark)。在某些实施例中,位置基于gps数据自动地解析,然而在其他实施例中,用户输入该数据。在窗口8125的底部,应用显示相机设置信息,包括光圈(f/5.6)、快门速度(1/200)、焦距(180mm)、曝光(0.7ev)以及感光度(iso200)。

图82示出了根据本发明的某些实施例的用户在gui7300中经由三个阶段8210-8230来访问图像8205的信息。除了在图像显示区内的不同的图像8205之外,前两个阶段8210和8220与以上关于图81所描述的阶段相同。在第三阶段中,信息窗口8125显示信息的不同值,因为有些信息不同于图像8105的信息。例如,时间戳(3:15:57pm)是同一天的晚些时候,并且文件尺寸以及某些相机设置是不同的。

图83示出了经由gui7300的三个阶段8310-8330对具有两个选定图像8105和8205的信息窗口的选择。此外,该图的前两个阶段类似于前两个图的那两个阶段,除了在本例中应用在图像显示区内显示图像8105和8205两者之外。在第三阶段8330中,信息窗口8125只显示所有选定图像共同具有的信息。在本例中,两个图像都是具有14.2mp的jpeg文件,但是具有不同的文件大小(因此文件大小未示出)。而且,两个图像的gps数据都解析为joshuatreenationalpark,并且虽然时间戳不同,但是两个图像都是在3月4日捕获的(于不同的时间)。在图像设置中,两个图像的快门速度、焦距及感光度设置是相同的,但是因为摄影师在两个图像之间具有不同的光圈和曝光补偿的设置,所以应用不显示该信息。

vi.共享图像

如同前一部分所简要提及的,某些实施例允许用户通过用户在网站上的帐号将图像上传到社会媒体或照片共享网站来共享直接来自图像编辑、查看和组织应用的图像。当用户请求共享图像时,应用指示其运行于其上的装置连接至网站(例如,通过互联网),然后自动地将其上传给网站上的用户帐号。在某些实施例中,应用另外还识别出网站的其他用户已经对该图像进行了评论,并且给应用的用户显示这些评论。

某些实施例提供让用户给图像添加标题的功能。当用户想要在照片寄存网站上共享图像时,用户可能希望对图像加以说明。在某些实施例中,除了使用在应用中为图像存储的标题之外或者另选地,用户还能够在用于将图像共享到网站的对话框中添加该标题。在应用中,该标题被存储于图像的数据结构中,如同以上在图15中所示出。图84示出了用户经由gui8400的六个阶段8410-8460来给图像添加标题。gui8400类似于之前的gui(例如,gui3500),但是还包括在顶部的工具栏的中心处的添加标题按钮8405。在第一阶段8410中,应用在图像显示区内显示所选图像8415。

在第二阶段8420中,用户敲击添加标题按钮8405,以便给所选图像8415添加标题。第三阶段8430示出:应用使触摸屏键盘8425覆盖于触摸屏的一部分或全部之上,以便让用户输入标题。在某些实施例中,键盘由装置的操作系统提供,并且应用在用户提供用于添加标题的输入时给操作系统发送键盘请求。

另外,在某些实施例中,触摸屏装置能够连接至用户可以用来输入标题的独立键盘。而且,本领域技术人员应当意识到,图像查看应用可以运行于非触摸屏装置上,对该非触摸屏装置,用户使用光标控制器(或其他装置)与其交互以便选择添加标题按钮,然后选择键盘来键入标题。

第三及第四阶段8430和8440示出了用户为图像8405键入标题“infrontrow!”的gui8400。在用户键入时,标题出现于图像显示区上方的上方标题区内。在第五个阶段8450中,用户选择在键盘上的“回车”按钮以便完成该标题。第六阶段8460示出了在用户已经输入标题之后的gui8400。应用现在显示在图像顶上的标题,而不是添加标题按钮。另外,应用将在小文本内的标题覆盖于缩略图8435之上。应用现在将已经与图像8415的数据结构一起存储了所输入的标题。

如上所述,在某些实施例中,不管图像是否具有标题,用户都能够使用图像查看和编辑应用将图像上传到社会媒体或照片共享网站。图85示出了根据某些实施例的与gui8400的用户交互,以便经由社会媒体网站共享图像8405。在第一阶段8510中,用户选择共享按钮8505,该共享按钮8505提供用于按多种方式来共享所选图像的选项。如同第二阶段8520所示,应用显示了具有下列选项的共享菜单8515:发送(beam)图像,使用所选图像来创建日志,以及在互联网上共享图像。在某些实施例中,发送图像需要直接与在同一本地网络(例如,蓝牙网络、wi-fi网络等)上的其他装置共享图像。在某些实施例中,日志是用户能够对其添加文字附注、图形及其他信息的图像集合的可共享布局。

在第二阶段8520中,用户选择“在互联网上共享”选项。第三阶段8530示出:应用现在显示具有三个照片共享网站选项()的新的菜单8525,但其他实施例可以包括用户能够共享图像的不同网站。在本例中,用户选择选项以便将图像共享到它们的帐号。在这点上,应用开始尝试将图像上传到用户的帐号。

在某些实施例中,不同的社会媒体/照片共享网站连同创建日志、发送图像以及各种其他共享选项一起是菜单8515的一部分。另外,在用户选择了用以共享图像的网站之后,应用然后提供了用于让用户选择将哪些图像(即,一个或多个选定图像、在当前相册中的所有图像、来自当前相册的新的图像集合等)上传到照片共享网站的选项。

图86在概念上示出了用于经由社会媒体或照片共享网站来共享图像的某些实施例的处理8600。虽然图86指的是“照片共享”网站,但是这能够是为照片共享特别设计的网站(例如,)或者较广泛的社会媒体网站(例如,)。如图所示,处理8600首先开始接收(在8605)用于将图像上传到照片共享网站的命令。应用可以通过图85所示的用户交互集合或者通过其变型来接收该命令。

然后,该处理确定(在8610)用户帐号是否已由应用运行于其上的装置登录到所选的照片共享网站上。应用的某些实施例运行于包括不同的社会媒体和照片共享网站的特定应用的装置上,装置在必要时通过所述社会媒体和照片共享网站自动地登录到网站上。在本例中,应用将不具有网站登录方面的问题。在其他实施例中,用户必须成功地登录(或者通过网站专用的应用,或者通过网页浏览器)到网站上。

当用户尚未登录时,处理8600在上传图像之前提示(在8615)用户登录网站,然后结束。一旦用户登录,应用再次开始处理8600。在某些实施例中,图像查看应用显示用户用以登录到网站上的界面,但其他实施例要求用户切换到不同的应用(例如,网站的专用应用或者网页浏览器)以便登录。

当用户已经登录到所请求的照片共享网站上时,处理确定(在8616)图像是否已经被上传到网站上。在某些实施例中,应用检查图像的数据结构以确定图像id是否已经针对特定的相片共享网站的图像存储过。另外,某些实施例通过查询网站数据库来确定图像是否仍然存在于网站上。某些实施例针对某些网站来执行该检查,但是对于其他网站则不执行。

当图像已经被共享时,处理8600则确定(在8619)用户是否想要将该图像共享为新的图像。用户可能想要将图像添加到在相片共享网站中的不同相册内。另外,用户可以已经编辑过该图像,并且想要将已编辑的图像作为新的图像来添加(例如,用于示出在编辑之前和之后的图像)。当用户将该图像添加为新的图像时,处理进行到8620,在下文描述。否则,处理还要确定(在8617)用户是否想要替换在照片共享网站上的已上传的图像。例如,用户可能已经编辑过图像并且想要以新的版本来替换共享的图像。为了实现操作8619和8617,某些实施例给用户提供提示,该提示允许用户选择是取消上传,将图像共享为新的图像,还是替换图像在相片共享网站上的现有版本。当用户不想要替换图像或者共享新的图像时,处理结束,而不上传图像。

当用户想要替换共享的图像时,处理使用要替换的图像的现有图像id通过照片共享网站的界面来上传(在8618)新的图像,然后结束。当图像还没有被共享时,该处理则通过照片共享网站的界面来上传(在8620)图像。在某些实施例中,图像查看和编辑应用使用在装置上的网站专用的应用(例如,应用)来执行上传操作。在其他实施例中,应用与网站自身进行处理。为了上传图像,某些实施例以所施加的编辑指令来生成完全尺寸图像(如上所述,某些实施例只存储原始的完全尺寸图像,以及用于根据原始图像来生成已编辑的图像的编辑指令)。

在通过照片共享网站的界面上传了图像之后,处理8600在照片共享网站的数据库内接收(在8625)所上传的图像的id。处理存储(在8630)图像id以便用于访问web网站上的图像,然后结束。该图像id使应用能够联系网站并且请求有关所上传的图像的信息(例如,为了下载评论)。在某些实施例中,应用将图像id存储于图像数据结构中,如同以上参照图15所示出的。

在某些实施例的处理8600中,当用户选择上传图像时,应用自动地将图像上传到相片共享网站,而没有任何更多的交互。但是,某些实施例允许用户进一步自定义该上传。图87示出了用户经由gui8700的十个阶段8701-8710将图像上传到gui8700类似于之前示出的某些实施例的gui8400,包括共享按钮8705。第一阶段8705示出:用户已经选择了共享按钮8715,促使应用显示包括各种不同的共享选项的菜单。在本例中,菜单包括几个图标,用于各种不同的照片共享/社会媒体网站,以及创建日志。在某些实施例中,该菜单包括附加的共享选项,例如,将图像发送到其他装置、以电子邮件发送图像等。如图所示,用户在阶段8701选择“facebook”图标。

在第二阶段8702,该选项的选择促使应用在gui8700中显示附加菜单8720。该菜单8720允许用户确定应当共享哪些图像。用户能够选择共享当前显示于缩略图显示区内的整个相册、当前选定的图像,或者用于选择新图像的第三选项,该第三选项在某些实施例中弹出用户能够用以从当前相册(或者不同的相册,在某些这样的实施例中)中选择图像集合以进行共享的对话框。在本例中,用户选择共享一个选定图像。

在第三阶段103中,gui8700现在包括图像共享对话框8725,该图像共享对话框8725使用户能够定制图像上传到所选的特定相片共享网站(在本例中为)。对话框8725包括缩略图图像8730、标题框8735、添加位置项目8740和朋友标注项目8745。在某些实施例中,当用户共享多个图像时,应用为选定用于共享的每个图像显示这些项目。另外,对话框8725包括取消选项和共享选项,分别使用户能够取消共享操作或者实际开始上传图像。最后,对话框8725包括相册选择按钮8750,该相册选择按钮8750使用户能够在作为共享图像的目的地的相片共享网站上的不同相册之间进行选择(与在图像查看和编辑应用内的相册不同)。如图所示,在第三阶段8703中,用户选择相册选择按钮8750。

该选择导致显示用户在第四阶段8704中能够从其中选择不同相册的菜单(或选择器)8755。在某些实施例中,应用(或者应用运行于其上的装置)登录到在相片共享网站上的用户的帐号(上传图像所必需的,如上所述),并且检索用户已经在网站上创建的不同相册的列表。当用户选择按钮8750(或其等同物)时,应用显示用户的相册的列表,以及用于创建新相册的选项。某些实施例以用户已经创建的或者给其上传了图像的特定数量的最近相册预先填充选择器。在本例中,用户选择“自然(nature)”相册选项,使得闪电的照片将被上传到上的这个相册。

在第五阶段8705中,用户选择添加位置项目8740。如同第六阶段8706所示,该选择导致显示用户能够从其中选择用以标注图像的不同位置的菜单(或选择器)8760。在某些实施例中,应用(或者应用运行于其上的装置)检索用户之前已经用以标注照片共享网站上的图像的不同位置的列表。如图所示,菜单8760包括用于选择之前创建的“家(home)”的位置、新位置或当前位置的选项。在某些实施例中,图像查看和编辑应用,或者在用于运行图像查看和编辑应用的装置上的其他应用,使用位置检测机制(例如,gps)来识别用户的位置,并且然后将该位置与在所识别的当前位置的特定距离(例如,1千米、1英里等)之内的一系列地点(例如,餐馆、地址等)关联。另外,某些实施例使用与图像一起存储的gps数据(例如,在exif数据内)来确定位置,并且列出在图像被捕获的位置的特定距离之内的地点。然后,应用提供该位置作为在菜单8760内的当前位置选项。某些实施例以用户已经用以标注图像的特定数量的最近位置来预先填充选择器。在本例中,用户选择“家(home)”位置标签。

在第七阶段8707中,用户选择朋友标注项目8745。如同第八阶段8708所示,该选择导致显示用于在照片共享网站的环境中列出用户的朋友的菜单(或检出器)8765。各种照片共享/社会媒体网站允许用户具有朋友网,并且某些实施例检索这些朋友的列表,使得用户能够通过图像查看和编辑应用的界面在图像中标注它们的朋友。某些实施例以用户的特定数量的的最近标注的朋友预先填充选择器。在某些实施例中,用户能够标注他们喜欢的任何数量的朋友。但是,在本例中,用户不标注任何朋友,而是在标题框8735内选择。

第九阶段8709示出:当用户在标题框内选择(例如,通过敲击)时,应用叠置触摸屏键盘8770以便让用户输入图像的标题。在某些实施例中,键盘由装置的操作系统提供,并且当用户在标题框内敲击时,应用对操作系统发送键盘请求。在本例中,用户已经使用键盘8770在标题框8735内键入“rightoutsidemyhouse!”,并且选择在键盘上的“回车(return)”按钮以便完成该标题。在第十阶段8710中,用户选择共享按钮以便连同标题一起共享照片。在某些实施例中,该标题用于相片共享网站,但是不与图像一起存储于图像查看和编辑应用内。

如同以上参照图86所述的,当用户选择图像以便共享到图像之前已经被上传的相片共享网站上时,某些实施例允许用户或者将图像上传为新的图像或者替换网站上的老图像。另外,当替换图像时,某些实施例检索标题、标签和/或来自网站的其他信息以便让用户更新该附属信息。

图88示出了经由gui8700的四个阶段8801-8804用户选择两个图像以上传到包括在图87中上传的图像的编辑版本。前两个阶段8801和8802与阶段8701和8702相同,不同之处在于在本例中闪电的照片已经被编辑过(由叠置于其缩略图上的工具箱图标指示)并且第二图像同样被选定。另外,闪电的照片还具有叠置于其缩略图上的用于指示它已经在至少一个相片共享网站共享的图标。

在用户选择上传所选图像之后,应用确定这些图像中是否有图像已经被上传。图像的数据结构(例如,在上文参照图15所描述的)指示图像被共享到其的任何位置。因为在本例中所选的图像之一已经被共享于所以应用显示用于指示照片已经被共享的对话框8805,并且允许用户选择是替换图像,共享图像(作为在相片共享网站的环境中的新图像),还是取消上传。在本例中,用户选择替换图像。但是,在某些实施例中,应用在用户试图将图像上传到相片共享网站的与之前版本相同的相册中时只弹出对话框8805。

结果,在第四阶段中,应用弹出图像共享对话框8810。这类似于对话框8725,但是包括两组独立的标题框、缩略图、添加位置项目和朋友标注项目。对于闪电图像,应用从相片共享网站中检索标题和标注信息并且在对话框8810中将该信息显示为可编辑的。在本例中,标题和位置被显示为可编辑的信息。

对于被上传到相片共享网站的图像,某些实施例自动地检索与那些网站的图像的交互。图89在概念上示出了用于在照片共享或社会媒体网站上检索对图像发表的评论的某些实施例的处理8900。某些实施例的应用在当前显示于应用的gui的图像显示区内的图像已经发布于照片共享网站时执行处理8900。某些实施例只在图像被显示于显示区达设定的时长(例如,1秒、5秒、1分钟等)之后执行评论检索处理。

如图所示,处理8900首先开始识别出(在8905)当前显示的图像已经被发布于照片共享网站。某些实施例等待图像显示达特定的时长,然后确定图像是否已被共享于任何地方。当图像还没有被共享时,处理8900将不会执行。此外,当图像已经被共享于几个不同的网站时,某些实施例执行处理8900或者其对于每个网站或者网站的子集的变型。

处理8900检索(在8910)用于照片共享网站的数据库中的图像的图像id。在某些实施例中,应用从所显示的图像的数据结构中检索该图像id。然后,该处理将对与图像相关的信息的请求发送(在8915)到照片共享网站,使用检索到的图像id来识别在网站的数据库中的图像。在某些实施例中,该图像id是用于在网站的数据库中识别为图像创建的对象的对象id,并且应用请求该对象的某些性质。

响应于请求的发送,处理接收(在8920)来自照片共享网站的评论流以及所请求的任何附加信息。在某些实施例中,评论流作为一系列评论来接收,该系列评论每个都包括作出该评论的用户、用户的简档缩略图、评论文字本身及时间戳。但是,其他实施例接收并解析嵌套式评论的树结构。另外,对于发布于或具有相似特征的网站的图像,某些实施例接收所发布的图像已经接收到的“喜欢(likes)”的数量,以及谁喜欢图像。

在该信息被接收到的情况下,处理8900检索(在8925)图像的评论流的最后访问日期。所检索到的日期和时间是用户在图像查看应用中查看图像的任何评论的最后时间。如果用户在图像上传之后还没有查看过对该图像的任何评论,则检索时间将是上传的时间。在某些实施例中,用户是否已经直接通过照片共享网站来查看对该图像的评论不影响最后访问日期。

然后,该处理确定(在8930)检索的最后访问日期是否早于评论流中的最近评论。处理将最后访问日期与最后评论的时间戳进行比较,并且确定哪个更早。当最后访问日期较早时,处理给用户显示(在8935)关于可获得新评论的通知。在某些实施例中,通知包括在信息按钮(用来访问评论)上的小图标或标记(badge)。某些实施例使用用于简单地指示可获得新评论的通知按钮,然而其他实施例提供关于新评论的数量的指示(例如,在图标内的数字)。为了确定新评论的数量,某些实施例将最后访问日期与每个连续的较早的评论进行比较,直至达到在最后访问日期之前的评论。在通知显示(如果有必要)之后,处理8900然后结束。

在某些实施例中,用户能够通过访问信息窗口内的评论选项卡来查看这些评论。通过这窗口,某些实施例还允许用户以发布于照片共享网站的附加评论进行应答。

图90示出了经由某些实施例的gui8400的六个阶段9010-9060用户通过信息窗口来发表这样的评论。在第一阶段9010中,应用显示用户之前已经加上标题并发布于的图像8415。另外,应用还显示在信息按钮8505上的小图标9005。该小图标指示所显示的图像已接收到两个新的评论。某些实施例对于不同的照片共享网站使用相同的图标,在不同的网站之间不作区分。其他实施例对等使用不同的图标。(例如,不同的颜色、不同的图标形状等)。

在第二阶段9020中,用户选择信息按钮8505。如同在图81-83中那样,在阶段9030中,这促使信息窗口9015出现于显示中。用户然后选择评论选项卡。第四阶段9040显示评论选项卡。如图所示,信息窗口9015现在显示评论:“paulsmith”已经被写于用户的图像上。该图示出了信息选项卡最初被显示并且用户然后选择该评论选项卡。但是,基于用户最有可能想要查看新的评论的假定,某些实施例响应于用户选择显示有通知图标的信息按钮而自动地显示评论选项卡。信息窗口9015在阶段9040中大于在阶段9030中的,以便显示全部评论。在某些实施例中,信息窗口9015没有被扩大,而是保持相同的尺寸并且自动地以第一个新评论位于窗口顶部的方式来显示评论,并且用户能够滚动评论流。

在阶段9040中,评论流还包括用户能够输入评论的部分。用户敲击该部分,并且第五阶段9050示出了作为结果出现的触摸屏键盘8425。这允许用户为图像键入要发布于的评论。在用户键入了她的回复之后,信息窗口8415在阶段9060于评论流的末尾显示新的评论,指示该评论已经被发布于为了发布用户评论,应用将用户评论与所存储的图像id连同用户信息一起发送到照片共享网站。在某些实施例中,应用在将评论显示于应用gui内之前等待来自网站的确认。

vii.上下文相关的帮助

某些实施例还包括用于为各种用户界面工具提供关于工具的功能的指示的上下文相关的帮助特征。在某些实施例中,应用基于应用的当前活动工具来确定应当给哪些用户界面特征提供帮助信息。例如,当用户选择特定的编辑工具集合时,应用从显示中去除某些帮助信息,同时将所选的编辑工具集合特有的信息添加到显示中。

图91在概念上示出了用于给出帮助特征的各种操作的某些实施例的gui的状态图9100。本领域技术人员应当意识到,状态图9100并不包含图像查看和编辑gui的各种状态,乃至各种与上下文相关的帮助特征相关的状态,相反只是在gui内的帮助特征操作的子集。

状态图9100将参照图92-96所示的ui实例来描述。特别地,图92示出了在与帮助图标的外观相关的多个阶段中的某些实施例的图像编辑应用的gui9200。图93-96示出了在与在用户于gui内执行各种操作时对帮助特征的激活和显示相关的多个阶段上的gui9200。

如图91所示,状态图9100在用户于状态9105下打开图像查看、组织和编辑应用时开始。在应用打开时,取决于帮助工具之前是否已经在应用运行于其上的装置上激活,它转变为状态9110或状态9115。在某些实施例中,图像编辑应用将具有两个状态(例如,1或0)的参数存储于装置上。在首次加载于装置上,应用将参数初始化为第一状态(例如,0)。一旦用户在装置上激活了帮助工具,应用就将参数切换为其他状态(例如,1)。这样,应用通过检查该参数来确定帮助工具是否已经在装置上激活。

如果帮助工具还没有在装置上激活(例如,参数具有值0),则gui在应用打开时转变为状态9110,在该状态9110下,应用以与应用的其他gui项目不同的明显方式显示帮助图标。在某些实施例中,帮助图标是可选的ui项目,用户能够选择该ui项目用于激活帮助工具。帮助工具的不同实施例不同地实现了对帮助图标的明显显示。例如,某些实施例以使用闪烁的帮助图标或者看起来在脉动的图标的明显方式来显示帮助图标。应用将帮助图标显示为在小的第一状态与较大的第二状态之间改变——或者是在两种状态之间闪烁,或者是扩大和收缩以便在这两种状态之间切换。

图92示出了经由三个阶段9205-9215在gui9200中以明显的方式来显示帮助图标的实例。如图所示,gui9200包括缩略图显示区9230、图像显示区9245、菜单栏9240、ui控件显示区9260和工具栏9235。菜单栏9240包括用于调用不同的图像编辑工具集合的可选ui项目的集合,包括用于调用图像裁切工具集合的可选ui项目9242、用于调用曝光调整工具集合的可选ui项目9244、用于调用颜色调整工具集合的可选ui项目9246、用于调用画笔工具集合的可选ui项目9248,以及用于调用特殊效果工具集合的可选ui项目9250。ui控件显示区9260在ui控件集合被调用时用于显示不同的ui控件集合。在本例中,ui控件显示区9260包括用于图像查看gui的默认的ui项目集合,包括用于启动对图像的自动增强操作的可选ui项目9262、用于初始化对图像的旋转操作的可选ui项目9264、用于对图像加标记的可选ui项目9266、用于将图像标记为最喜爱的可选ui项目9268,以及用于隐藏图像的可选ui项目9270。

工具栏9235包括附加的可选项目,包括用于导航回到合集组织gui的可选ui项目9232、用于调用帮助工具的可选ui项目9250(即,帮助图标)、用于为所显示的图像显示调用信息窗口的可选ui项目9252,以及用于在所显示的图像的原始版本与编辑版本之间切换的可选ui项目9254。

在图92中,帮助工具还没有在装置上激活,并且因此应用以明显的方式来显示帮助图标。在本例中,应用将帮助图标9250显示为跳动或脉动的。如图所示,帮助图标包括问号图形。该问号扩大及收缩以便产生脉动的外观。在第一阶段9205,帮助图标具有扩展超出图标的边界的大问号。

第二阶段9210示出了帮助图标9250处于其最小状态的gui9200。如图所示,帮助图标9250不再被高亮显示,由图标上的小问号指示,该图标被帮助图标9250的边界完全包围。为了从第一阶段9205转到第二阶段9210,应用快速地减小图标的问号部分的尺寸。在某些实施例中,第二阶段9210仅在第一阶段9205之后的很短时段(例如,0.5秒)内出现。

第三阶段9215示出了在应用将在帮助图标9250内的问号的尺寸再次增大到其最大点之后的gui9200,类似于阶段9205。在某些实施例中,应用从第一阶段9205转到第二阶段9210的时间与从第二阶段9210转到第三阶段9215的时间相同。在某些实施例中,应用缩小帮助图标的尺寸,然后快速地放大图标的尺寸,等等。在某些实施例中,应用以此方式显示帮助图标,直到用户已经调用帮助特征至少一次。

回过去参照图91,如果应用在应用打开时确定帮助工具之前已经在装置上调用,则帮助工具转变为状态9115,在该状态9115中,gui按照与其他图标相同的方式来显示帮助图标。也就是,帮助图标以正常状态呈现,类似于在图92的第二阶段9210中示出的状态。

在处于状态9110或状态9115时,当应用接收到对帮助图标的选择时,gui转变为状态9120,以为(i)不变的gui项目以及(ii)用户工具的当前选定层显示帮助指示符。在某些实施例中,gui项目包括不同的用户工具集合。例如,某些实施例包括作为第一集合的默认工具(自动增强、旋转、标记、最喜爱、隐藏),以及各种编辑工具集合(例如,裁切工具、曝光工具、颜色调整工具、画笔工具和特殊效果工具)。当在gui中示出了默认工具时,某些实施例为默认工具以及为各种编辑激活项目(用于激活不同的编辑工具集合)显示帮助指示符。当编辑工具集合中的一个编辑工具被激活时,应用显示这些工具,代替默认工具。如果帮助特征已经被调用,则某些实施例不显示不同的编辑激活项目的帮助指示符,而是只显示所选的编辑工具的帮助指示符。在某些实施例中,不变的gui项目包括总是出现于gui中的项目,不管该项目是否被选择。这些项目可以包括切换原图按钮、共享按钮、信息按钮和其他gui项目。

在某些实施例中,应用保持于状态9120,除非(1)用户选择新的编辑工具集合,(2)用户移动当前所选的编辑工具之一,或者(3)用户选择帮助图标以解除激活帮助特征。当用户选择新的工具集合时,应用转变为状态9125,以修改当前选择的用户工具层,然后转变回状态9120,以为新的当前选择的工具层显示帮助指示符。

图93示出了在gui9200中经由三个不同的阶段9305-5715来调用上下文相关的帮助工具并且改变选择的用户工具集合的实例。第一阶段9305类似于图92的第一阶段9205,除了图像显示区9245只包括单个图像之外。第二阶段9310示出了在用户已经激活帮助工具之后的gui9200。在某些实施例中,帮助工具能够通过选择帮助图标来激活。如图所示,用户已经通过在帮助图标9250上敲击手指激活了帮助工具。作为选择的结果,应用将各种帮助指示符覆盖于gui之上。这些帮助指示符显示各种gui项目的简短的说明信息。

在第二阶段9310中,应用为在工具栏9235内恒定显示的gui项目9238、9252和9254显示帮助指示符9325。这些帮助指示符被标记为用于共享按钮9238的“共享”、用于信息按钮9252的“图像信息”以及用于切换原图按钮9254的“显示原图”,但是各种实施例可以使用一个或多个项目的不同描述。另外,某些实施例只为可选的项目显示帮助指示符;当用户还没有编辑所显示的图像时,切换原图按钮将不起作用并且因此某些实施例不显示其帮助指示符。某些实施例为工具栏9235中的不同项目(例如,撤销按钮)显示帮助指示符。

帮助工具还为当前选择的用户工具层显示指示符集合9335(“自动增强”、“旋转”、“标记”、“最喜爱”和“隐藏”)。另外,当处于该工具层(默认用户工具集合,在还没有选择任何编辑激活项目时显示)时,应用为编辑激活项目9242、9244、9246、9248和9262显示帮助指示符9330,这些帮助指示符9330为用户指示不同的编辑选项(“裁切”、“曝光”、“颜色”、“画笔工具”和“特殊效果”)。如同恒定呈现的gui项目一样,不同的实施例对于同一项目可以使用不同的描述,或者具有不同的gui项目集合。在某些实施例中,帮助指示符集合是可选的ui项目。在这样的实施例中,当用户选择帮助指示符时,应用叠加关于相应的gui项目的功能和操作的更详细的信息。

某些实施例显示用于在某些项目的帮助指示符中使用的指导。例如,在某些实施例中,“旋转”指示符包括更多信息,例如,“旋转90°。触摸并按住获得更多选项”。如图所示,应用在9310所叠加的帮助指示符包括用于在图像显示区中心的缩放工具的用来给出关于使用缩放工具的指导的指示符9365,以及用于为缩略图显示区描述不同类型的选择输入的指示符9375。

图93的第三阶段9315示出了用户在gui9200中选择新的工具集合的实例。如同第三阶段9315所示,用户选择了在菜单栏9240中的可选ui项目9244,用于调用曝光调整工具集合。结果,应用在ui控件显示区9260内显示曝光调整工具集合,替换自动增强、旋转和标注ui项目。曝光调整工具集合包括阴影调整工具9340、对比度调整工具集合9345和9350、亮度调整工具9355和高亮显示调整工具9360。作为用户选择新的工具集合的结果,应用为新显示的工具集合叠加新的帮助指示符集合9370(“黑点和阴影”、“对比度”、“高亮”、“对比度”和“白点和高亮”),同时移除各种编辑激活工具9242、9244、9246、9248和9262的帮助指示符9330。应用还在图像显示区内叠加指示符9380,用于指示用户能够过在图像自身上的触摸并拖拽调整图像的曝光数据通。另外,用于共享、图像信息和切换原图按钮的帮助指示符9325保持,不管用户选择哪个gui工具集合。

图94示出了在用户选择新的工具集合时在gui9200内按照两个不同的阶段9405和9410对帮助特征的另一个修改实例。第一阶段9405与图93的第二阶段9310相同。如图所示,帮助工具已经被激活,由帮助指示符集合9325、9330、9335、9365和9375出现于gui9200中指示。第二阶段9410示出了在用户选择了用于在gui9200中显示的新的工具集合之后的gui9200。在本例中,用户选择了在菜单栏9240内的可选ui项目9248,用于调用画笔工具集合。正因如此,应用显示了用于在gui9200中调用不同的图像调整操作的画笔工具集合9425。作为用户选择新的工具集合的结果,帮助工具还为新的画笔工具集合9425显示新的帮助指示符集合9430,同时去除不同的编辑激活工具的帮助指示符集合9330。

返回到图91的阶段图9100,当用户在应用处于状态9120的情况下移动当前选定的工具之一时,应用转变为状态9130,以连同移动gui工具一起移动帮助指示符。例如,当用户移动滑动块时,该滑动块的帮助指示符随它一起移动。

图95示出了应用按照三个阶段9505-9515自动地移动帮助指示符以及相应的编辑工具的实例。第一阶段9505与图93的第三阶段9315相同,其中帮助工具被激活并且曝光调整工具被选择。如图所示,应用为曝光调整工具集合9340-9360显示帮助指示符集合9370。第二阶段9510示出了在用户开始接触触摸屏以便移动曝光调整滑动块之一时的gui9200。第三阶段9515示出了由用户进行的对比度调整工具9345的移动。作为该移动的结果,帮助指示符9370(标记为“对比度”)连同工具一起向右移动。另外,移动对比度工具之一会促使其他对比度工具同样移动,并正因如此,其他对比度滑动块9350连同其帮助指示符一起向左移动。作为该移动的结果,所显示的图像的对比度被修改。

回过去参照图91,当用户在帮助工具被激活之后再次选择帮助图标时,帮助工具从gui中去除全部帮助指示符。另外,由于用户已经在装置上激活了帮助工具,因而帮助工具返回到状态9115,在该状态9115中,帮助工具按照与其他图标相同的方式来显示帮助图标,如图93的阶段9305所示。

如上所述,当用户选择帮助指示符之一时,某些实施例显示有关所选特征的详细帮助文档。某些实施例或者是从外部位置下载(例如,经由互联网)这些帮助文档或者是将它们与应用一起存储。

图96示出了经由三个不同的阶段9605-9610通过gui9200来显示与gui项目之一相关的详细帮助文档的实例。第一阶段9605与图94的第一阶段9405相同,其中帮助工具被激活,由示于gui9200上的gui项目的帮助指示符的显示指示。当用户选择帮助指示符之一时,应用显示关于与相应的gui项目相关的功能和操作的更详细信息。

第二阶段9410示出了用户选择帮助指示符之一。特别地,用户选择(例如,经由如图所示的敲击、经由点击选择等)裁切项目9242的帮助指示符,促使应用高亮显示裁切指示符。

作为选择的结果,应用在阶段9615于gui9200之上叠加裁切工具的详细帮助信息9630。如上所述,在某些实施例中,详细帮助信息的内容被存储于图像编辑应用在其上执行的装置上。在这些实施例中,当用户选择帮助指示符时,应用在将信息显示于gui9200上之前从装置中检索相应的帮助信息。在其他实施例中,详细帮助信息被存储于装置通过网络(例如,互联网)与其连接的一个或多个远程位置。在这些实施例中,当用户选择帮助指示符时,应用在将信息显示于gui9200上之前通过网络从这些远程位置之一中检索详细帮助信息。

图97示出了在某些实施例中的用于不同gui项目的帮助指示符的显示的另一个实例。特别地,图97示出了经由gui9300的四个阶段9710-9740的帮助指示符的移动以及用于颜色调整工具的多个帮助指示符层。第一阶段9710与图94的第一阶段9405相同,其中帮助工具被激活,由示于gui9200中的gui项目的帮助指示符的显示指示。

第二阶段9720示出了在用户选择颜色调整激活项目9246之后的gui9200。这促使应用显示在工具栏9260中的四个颜色调整滑动块。如同由帮助指示符9705所示的,这些滑动块使用户能够调整所显示图像的饱和度、天空颜色(skycolor)、绿色及肤色(skintones)。另外,颜色调整工具包括白平衡项目9715,由帮助指示符9725指示。

在第三阶段9730,用户向右移动天蓝色滑动块9745,以便增加图像的天空颜色的饱和度。这还促使滑动块9745的帮助指示符9705向右移动。在这样做时,指示符开始与草绿色滑动块的帮助指示符重叠。结果,应用自动地向上移动草绿色滑动块的帮助指示符(使用长杆(longerstem)),使得用户能够看见整个帮助指示符。

第四阶段9740示出了用户选择白平衡项目9715的结果。如图所示,应用叠加用于提供众多可选的白色平衡选项的工具栏9750。在这些项目被显示的情况下,应用去除颜色调整滑动块的帮助指示符9705,并且作为代替,叠加不同的白平衡项目的指示符9755。

viii.软件体系结构

在某些实施例中,以上所述的处理被实现为在特定机器(例如,计算机或手持式装置)上运行的软件,或者被存储于机器可读介质内。图98在概念上示出了某些实施例的图像查看、编辑及组织应用9800的软件体系结构。在某些实施例中,图像查看、编辑及组织应用是独立的应用或者被集成于另一个应用内,然而在其他实施例中,应用可以被实现于操作系统内。而且,在某些实施例中,应用被提供作为基于服务器的解决方案的一部分。在某些这样的实施例中,应用经由瘦客户机来提供。也就是,应用运行于服务器上,而用户经由远离服务器的单独的机器与应用交互。在其他此类实施例中,应用经由胖客户机来提供。也就是,应用由服务器发布到客户机上并且运行于客户机上。

图像查看、编辑及组织应用9800包括用户界面(ui)交互和生成模块9805、媒体获取模块(ingestmodule)9810、柱状图生成器9815、编辑模块9820、图像处理器9825、图像显示区生成器9830、图像选择器9835、图像标注器9840、图像比较器9845和共享管理器9850。该图还示出了与应用9800关联的存储数据:源图像9855、图像数据9860、合集数据9865和高速缓存图像9870。

在某些实施例中,源图像9835存储被导入应用(即,本地图像数据库)内的图像文件(并且可能为视频文件或其他媒体)。在某些实施例中,图像文件可以与应用9800同其通信的另一个图像查看和组织应用关联。图像数据9860存储某些实施例的图像数据结构,而合集数据9865存储合集数据(例如,相册、事件、日志等)。高速缓存图像9870存储图像(例如,缩略图、显示尺寸图像等)的高速缓存版本。在某些实施例中,四个数据集合9855-9870被存储于一个物理存储装置(例如,内部硬盘、外部硬盘、固态存储器等)内。在某些实施例中,数据可以在多个物理存储装置之间分割。

图98还是示出了操作系统9875,其包括输入装置驱动器9880、显示模块9885、媒体导入模块9890和网络接口9895。在某些实施例中,如图所示,装置驱动器9880、显示模块9885、媒体导入模块9890和网络接口9895是操作系统的一部分,即使在媒体编辑应用9800是独立于操作系统的应用时也是如此。

输入装置驱动器9860可以包括用于转译来自触摸屏以及键盘、鼠标、触摸板、平板等的信号的驱动器。用户与这些输入装置中的一个或多个交互,这些输入装置将信号发送到它们的相应的装置驱动器。装置驱动器然后将信号转译成被提供给ui交互和生成模块9805的用户输入数据。

本申请描述了用于给用户提供执行不同的操作和功能集合的众多方式的图形用户界面。在某些实施例中,这些操作和功能基于通过不同类型的触摸屏装置接收自用户的不同命令来执行。例如,本申请示出了使用触摸屏输入(例如,以一个或多个手指)来控制(例如,选择、移动)在图形用户界面中的对象。但是,在某些实施例中,在图形用户界面中的对象还能够通过其他控件(例如,光标)来控制或操纵。在某些实施例中,光标控制通过用于将光标移动到装置的显示器上的不同位置的输入装置来实现。基于光标的位置,不同的输入(例如,鼠标按钮点击等)能够被用来执行不同的动作(例如,gui项目的选择)。因而,虽然以上的许多图形没有示出光标,但是某些实施例通过光标的使用(带有或没有触摸控制)来执行相同的动作。

显示模块9885转译用于显示装置的用户界面的输出。也就是,显示模块9885接收用于描述应当显示什么内容的信号(例如,来自ui交互和生成模块9805)并且将这些信号转译成将发送给显示装置的像素信息。显示装置可以是lcd、等离子体屏幕、crt监视器、触摸屏等。在某些触摸屏的实施例中,显示模块9885和输入装置的驱动器9880是单个触摸屏驱动器的一部分。

媒体导入模块9890通过媒体编辑应用9800运行于其上的装置的一个或多个端口(例如,usb端口、firewire端口等)接收来自外部存储装置(例如,外部驱动器、记录装置等)的媒体文件(例如,图像文件等),并且转译该媒体数据以用于应用9800或者将数据直接存储于装置的存储器上。

媒体编辑应用9800的ui交互和生成模块9805解释接收自输入装置驱动器的用户输入数据,并将其传递给各种模块,包括媒体获取模块9810、编辑模块9820、图像处理器9825、图像显示区生成器9830、图像选择器9835和图像标注器9840。ui交互模块还管理媒体编辑应用gui的显示,并且将该显示信息输出到显示模块9865。该ui显示信息可以基于来自编辑模块9815、时间线生成器9820、视角生成器9827、回放模块9830、数据9835-9850等的信息。另外,模块9805还可以仅基于用户输入来生成ui的某些部分——例如,当用户移动ui中只影响显示而不是任何其他模块的项目,例如,将窗口从ui的一侧移动到另一侧或者修改片段浏览器和片段库的相对尺寸。在某些实施例中,ui交互和生成模块9805生成基本gui并且以来自其他模块的信息和所存储的数据来填充该gui。

媒体获取模块9810管理对应用9800的源媒体的导入。如图所示,某些实施例接收来自操作系统9875的媒体导入模块9890的源媒体。媒体获取模块9810通过ui模块9805来接收关于应当导入哪些文件的指令,然后指示媒体导入模块9890启动该导入(例如,从外部驱动器、外部相机、应用运行于其上的相机装置、在装置上的不同应用等)。某些实施例的媒体获取模块9810在源图像9855中存储这些图像。在某些实施例中,媒体获取模块9810还在源图像导入时管理图像数据结构的创建。

在某些实施例中,柱状图生成器9815为每个导入的图像生成颜色、纹理及形状的柱状图。某些实施例的柱状图生成器9815在上文参照图52进行了详细的描述。

编辑模块9815包括用于编辑图像的多种模块。编辑模块9815生成各种编辑gui工具并且将来自这些工具的输入转译成用于图像的编辑指令(例如,裁切指令、旋转指令、颜色调整指令等)。图像处理器9825在图像需要输出时将编辑指令施加于图像。例如,当用户将编辑添加到显示的图像时,编辑模块9820中的适当一个修改对图像的编辑指令,并且图像处理器9825施加这些指令以便生成所期望的图像。

图像显示区生成器9830处理图像显示区的生成。图像显示区生成器9830接收(例如,来自ui交互和生成模块9805或图像选择器9835的)用于显示的图像集合。某些实施例的生成器9830计算图像的平均纵横比,定义在图像显示区内的网格,计算要用于显示图像的像素的数量,并且计算每个图像的尺寸。

图像选择器9835将各种用户交互转译成对要发送到图像显示区生成器9830的一个或多个图像的选择。当用户请求与特定图像相似的图像集合时,图像选择器使用图像比较器9845来识别相似图像。某些实施例的图像比较器9845在上文参照图52进行了描述。图像标注器9840接收用于标注一个或多个图像并相应地修改图像的数据结构的用户输入。

共享管理器9850管理图像在各种照片共享网站(例如,等)上的共享。在某些实施例中,共享管理器9850通过网络接口9895连接到这些网站,以便上传图像,接收和存储所上传的图像的对象id,并且接收/上传关于图像的评论。

虽然媒体编辑应用9800的许多特征已经被描述为由一个模块(例如,ui交互和生成模块9805、媒体获取模块9810等)执行,但是本领域技术人员应当意识到,本文所描述的功能可以被分成多个模块。类似地,在某些实施例中,被描述为由多个不同的模块执行的功能可以由单个模块来执行(例如,图像显示区生成器9830和图像选择器9835可以是ui交互和生成模块9805的一部分)。

ix.电子系统

上述许多特征和应用被实现为被指定为记录于计算机可读存储介质(也称为计算机可读介质)上的指令集的软件处理。当这些指令由一个或多个计算或处理单元(例如,一个或多个处理器、处理器的内核或者其他处理单元)执行时,它们促使处理单元执行在指令中指示的动作。计算机可读介质的实例包括,但不限于,cd-rom、闪存驱动器、随机存取存储器(ram)芯片、硬盘驱动器、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)等。计算机可读媒体不包括以无线方式或经由有线连接传递的载波和电信号。

在本说明书中,术语“软件”意指包括驻留于只读存储器内的固件或者存储于磁存储器内的应用,这些应用能够被读入存储器内,由处理器处理。此外,在某些实施例中,多个软件发明能够被实现为较大程序的子部分,同时保持不同的软件发明。在某些实施例中,多个软件发明还能够被实现为单独的程序。最后,用于共同实现本文所述的软件发明的单独程序的任何组合在本发明的范围之内。在某些实施例中,软件程序当被安装以运行于一个或多个电子系统上时,定义了用于执行和进行软件程序的操作的一个或多个具体的机器实现方式。

a.移动装置

某些实施例的图像编辑和查看应用运行于移动装置上。图99是该移动计算装置的体系结构9900的实例。移动计算装置的实例包括智能手机、平板电脑、膝上型电脑等。如图所示,移动计算装置9900包括一个或多个处理单元9905、存储器接口9910和外设接口9915。

外设接口9915与各种传感器和子系统耦接,所述子系统包括相机子系统9920、无线通信子系统9925、音频子系统9930、i/o子系统9935等。外设接口9915使得在处理单元9905和各种外设之间能够通信。例如,取向传感器9945(如陀螺仪)和加速度传感器9950(如加速计)与外设接口9915耦接,以促进实现取向和加速功能。

相机子系统9920与一个或多个光学传感器9940(例如,电荷耦合装置(ccd)光学传感器、互补型金属-氧化物-半导体(cmos)光学传感器等)耦接。与光学传感器9940耦接的相机子系统9920促进实现相机功能,例如图像和/或视频数据捕获。无线通信子系统9925用来促进实现通信功能。在某些实施例中,无线通信子系统9925包括射频接收器和发送器,以及光学接收器和发送器(在图99中未示出)。某些实施例的这些接收器和发送器被实现成经由一个或多个通信网络(如gsm网络、wi-fi网络、蓝牙网络等)来操作。音频子系统9930与扬声器耦接,用于输出音频(例如,用于输出与不同的图像操作关联的不同的声音效果)。另外,音频子系统9930还与传声器耦接,以促进实现语音使能功能,例如语音识别、数字记录等。

i/o子系统9935涉及通过外设接口9915进行的在输入/输出外设装置(例如,显示器、触摸屏等)与处理单元9905的数据总线之间的传输。i/o子系统9935包括触摸屏控制器9955和其他输入控制器9960,用于促进实现在输入/输出外设装置与处理单元9905的数据总线之间的传输。如图所示,触摸屏控制器9955与触摸屏9965耦接。触摸屏控制器9955使用多种触敏技术中的任一种来检测在触摸屏9965上的接触和移动。其他输入控制器9960与其他输入/控制装置(例如,一个或多个按钮)耦接。代替触摸交互或者除触摸交互之外,某些实施例包括能够检测接近触摸交互的接近触摸屏和相应的控制器。

存储器接口9910与存储器9970耦接。在某些实施例中,存储器9970包括易失性存储器(例如,高速随机存取存储器)、非易失性存储器(例如,闪存)、易失性和非易失性存储器的组合,和/或任何其他类型的存储器。如图99所示,存储器9970存储操作系统(os)9972。os9972包括用于处理基本系统服务以及用于执行与硬件相关的任务的指令。

存储器9970还包括用于促进实现与一个或多个附加装置的通信的通信指令9974;用于促进实现图形用户界面处理的图形用户界面指令9976;用于促进实现图像相关的处理和功能的图像处理指令9978;用于促进实现输入相关的(例如,触摸输入)处理和功能的输入处理指令9980;用于促进实现音频相关的处理和功能的音频处理指令9982;以及用于促进实现相机相关的处理和功能的相机指令9984。以上所述的指令只是示例性的,并且在某些实施例中存储器9970包括附加的和/或其他的指令。例如,智能电话的存储器可以包括用于促进实现电话相关的处理和功能的电话指令。上述指令不需要被实现为单独的软件程序或模块。移动计算装置的各种功能能够以硬件和/或软件来实现,包括以一个或多个信号处理和/或应用专用的集成电路实现。

虽然图99所示的构件被示为单独的构件,但本领域技术人员应当意识到两个或更多个构件可以被集成于一个或多个集成电路内。另外,两个或更多个构件可以通过一个或多个通信总线或信号线耦接到一起。此外,虽然许多功能已经被描述为由一个构件执行,但是本领域技术人员应当意识到,针对图99所描述的功能可以被分成两个或更多个集成电路。

b.计算机系统

图100在概念上示出了用以实现本发明的某些实施例的电子系统10000的另一个实例。电子系统10000可以是计算机(例如,台式计算机、个人计算机、平板计算机等)、电话、pda或者任何其他种类的电子装置或计算装置。这样的电子系统包括各种类型的计算机可读介质以及用于其他各种类型的计算机可读介质的接口。电子系统10000包括总线10005、处理单元10010、图形处理单元(gpu)10015、系统存储器10020、网络10025、只读存储器10030、永久存储装置10035、输入装置10040和输出装置10045。

总线10005总体表示与电子系统10000的众多内部装置通信连接的所有的系统总线、外设总线和芯片组总线。例如,总线10005与具有只读存储器10030、gpu10015、系统存储器10020和永久存储装置10035的处理单元10010通信连接。

从这些各种存储器单元中,处理单元10010检索出用于执行的指令以及用于处理以便执行本发明的处理的数据。在不同的实施例中,处理单元可以是单处理器或多核处理器。某些指令被传递给gpu10015并由其执行。gpu10015能够卸载对由处理单元10010提供的图像处理的各种计算或补充。在某些实施例中,此类功能能够使用corelmage的内核暗影语言(kernelshadinglanguage)来提供。

只读存储器(rom)10030存储电子系统的处理单元10010及其他模块所需的静态数据和指令。另一方面,永久存储装置10035是读-写存储装置。该装置是用于存储指令和数据(即使在电子系统10000关闭时)的非易失性存储器单元。本发明的某些实施例使用大容量存储装置(例如磁盘或光盘及其相应的盘驱动器)作为永久存储装置10035。

其他实施例使用可移动存储装置(例如,软盘、闪存装置等,及其相应的驱动器)作为永久存储装置。像永久存储装置10035一样,系统存储器10020是读-写存储装置。但是,与存储装置10035不一样,系统存储器10020是易失性读-写存储器,例如,随机存取存储器。系统存储器10020存储处理器在运行时需要的某些指令和数据。在某些实施例中,本发明的处理被存储于系统存储器10020、永久存储装置10035和/或只读存储器10030内。例如,各种存储器单元包括根据某些实施例的用于处理多媒体片段的指令。从这些各种存储器单元,处理单元10010检索出用于执行的指令以及用于处理的数据,以便执行某些实施例的处理。

总线10005还连接到输入和输出装置10040和10045。输入装置10040使用户能够将信息和选择命令传递给电子系统。输入装置10040包括数字字母键盘和指点装置(也称为“光标控制装置”)、相机(例如,网络摄像头)、用于接收语音命令的传声器或类似装置等。输出装置10045显示由电子系统生成的图像或以其他方式输出的数据。输出装置10045包括打印机和显示装置(例如,阴极射线管(crt)或液晶显示(lcd)),以及扬声器或类似的音频输出装置。某些实施例包括诸如起着输入和输出装置两种作用的触摸屏之类的装置。

最后,如图100所示,总线10005还通过网络适配器(未示出)将电子系统10000耦接至网络10025。以此方式,计算机能够是计算机网络(例如,局域网(“lan”)、广域网(“wan”)或者内联网)或者多个网络的网络(例如,互联网)的一部分。电子系统10000的任意或全部构件可以结合本发明来使用。

某些实施例包括在机器可读或计算机可读介质(作为选择,也称为计算机可读存储介质、机器可读介质或者机器可读存储介质)中存储计算机程序指令的电子构件,例如,微处理器、存储装置和存储器。此类计算机可读介质的某些实例包括ram、rom、只读压缩盘(cd-rom)、可记录压缩盘(cd-r)、可重写压缩盘(cd-rw)、只读数字万用盘(例如,dvd-rom、双层dvd-rom)、多种可记录/可重写dvd(例如,dvd-ram、dvd-rw、dvd+rw等)、闪存(例如,sd卡、mini-sd卡、微-sd卡等)、磁和/或固态硬盘驱动器、只读和可记录蓝光盘、超密度光盘、任何其他光或磁介质,以及软盘。计算机可读媒体可以存储由至少一个处理单元执行的计算机程序,并且包括用于执行各种操作的指令集。计算机程序或计算机代码的实例包括机器代码(例如,由编译器生成的),以及包括由计算机、电子构件或者使用解释器的微处理器执行的高级代码的文件。

虽然上述讨论主要涉及用于执行软件的微处理器或多核处理器,但是某些实施例由一个或多个集成电路(例如,专用集成电路(asic)或现场可编程门阵列(fpga))执行。在某些实施例中,这样的集成电路执行存储于电路自身上的指令。另外,某些实施例执行存储于可编程逻辑装置(pld)、rom或ram装置内的软件。

如在本申请的说明书和任何权利要求中所使用的,术语“计算机”、“服务器”、“处理器”和“存储器”全都指的是电子装置或其他技术装置。这些术语不包括人或人群。为了说明起见,术语显示或正在显示意指在电子装置上的显示。如在本申请的说明书和任何权利要求中所使用的,术语“计算机可读介质”、“计算机可读介质”和“机器可读介质”完全限定于用于按照计算机可读取的形式来存储信息的有形的实体对象。这些术语不包括任何无线信号、有线下载信号以及任何其他短暂信号。

虽然本发明已经参考众多具体的细节进行了描述,但是本领域技术人员应当意识到,在不脱离本发明的精神的情况下,本发明能够以其他具体的形式来实现。例如,许多附图都示出了各种触摸手势(例如,敲击、双击、扫动手势、长按手势等)。但是,所示操作中的许多都能够经由不同的触摸手势(例如,代替敲击的扫动等)或者通过非触摸输入(例如,使用光标控制器、键盘、触摸板/轨迹板、接近触摸敏感屏等)来执行。另外,许多附图(包括图7、34、43、47、53、59、79、86和89)在概念上示出了处理。这些处理的具体操作可以不按照所示出的及所描述的严格顺序来执行。具体的操作可以不以一连串连续的操作来执行,并且不同的具体操作可以在不同的实施例中执行。而且,该处理能够使用若干个子处理来执行,或者作为较大的宏处理的一部分。因而,本领域技术人员应当理解,本发明并不限定于上述说明性的细节,而是应当由所附权利要求书来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1