具体实施方式
在下面的描述中,出于解释的目的,许多具体的细节被阐明以提供对本发明的彻底理解。然而,显而易见,本发明可以在没有这些具体细节的情况下实施。在其它实例中,已知的结构和装置以框图的形式示出,以避免对本发明造成不必要的混淆。
概述
典型地,数字照片的文件包含日期信息或者与日期信息相关。日期信息可反映例如拍摄数字照片的日期。接下来将描述用于基于与照片相关联的日期信息,来自动地组织和显示照片的技术。在一个实施例中,提供了具有类似于日历的用户界面的图像管理工具。通过和用户界面交互,用户能够选择特定的日期。响应用户的特定日期的选择,图像管理工具显示与属于特定日期的日期信息相关的所有照片。
日期信息
数字图像可以和多种类型的日期信息相关联。例如,当拍摄数字照片时,许多数码相机被设计成将指示照片何时被拍照的日期信息嵌入图像文件本身中。在JPEG格式中,包含该“获取日期”信息的图像文件部分被称作EXIF报头。
获取日期只是可与图像文件相关联的日期信息的一个例子。其它类型的可与图像文件关联的日期包括最近修改日期、下载日期、购买日期等。在此描述的技术不限于任何特定类型的日期信息。
另外,此后描述的技术可被嵌入在图像文件本身中的日期信息或保持与文件分离的日期信息所采用。例如,图像文件的最后修改日期可以被操作系统保持在图像文件之外。
此后描述的技术既可以被用于自动产生的日期信息又可以被用于手动指定的日期信息。例如,“获取日期”通常是在拍照的时候自动地为图像文件生成的且与图像文件关联。类似地,当在计算机系统中修改该文件时,最后修改日期通常自动地为图像文件生成并和图像文件关联。另一方面,图像管理应用程序可以允许用户手动地使数字照片和数据相关联。
应当指出术语“日期信息”通常指关于时间点或者时间间隔的信息,不一定指特定的一天。例如,和图像文件关联的日期信息可表示一个或多个:特定日期(2004年1月1日),一天的特定时刻(下午1:12)、特定月(2002年5月)、特定日期范围(5/4/02-5/7/02)等。为了便于描述,给出的实例中将日期信息看成为具体日期。
日历界面
根据一个实施例,代表日历的界面呈现给用户。通过和用户界面交互,用户指定过滤标准,将此过滤标准和与集合中的图像文件相关联的日期信息相比较。那些相关日期信息满足指定的标准的图像文件被呈现给用户。
根据一实施例,日历界面支持多种显示模式,包括年-月模式和月-日模式。图1是年-月模式的日历界面的实例。在年-月模式中,为给定年的每个月都生成了可视描述。在图1示出的实施例中,每个月的可视描述仅仅是该月的名称,被变灰的区域包围。在可选的实施例中,和月份关联的可视描述可以不同。例如,每个月可以用按钮、字母、或者图像表示。在处描述的技术不限于以任何特殊的方式可视地表示月份。
图2是月-日模式的日历界面的实例。在月-日模式中,为给定月份的每一天生成可视描述。在示出的实施例中,每天的可视描述仅仅是该天的号码。然而,如同月份的可视描述一样,天的可视描述可以随不同的实施方式而变化。
用日历界面传达关于集合的信息
根据一个实施例,日历界面的可视描述部分地基于与集合中的图像文件关联的日期信息。例如,在图1所示的实施例中,每个月的可视描述反映在集合中的任何图像文件是否具有属于该月的日期信息。特别地,如果集合中的任何图像文件属于一个月,那么该月的可视描述和那些集合中没有图像文件属于该月的可视描述不相同。
参见图1中示出的实施例,如果集合中的任何图像文件具有属于该月的日期信息,则该月的名称被加粗。如果集合中没有图像文件具有属于该月的日期信息,那么该月的名称不加粗。在示出的实例中,只有2004年的9月、10月、和11月被加粗。这样,图1中的日历界面上显示的所有月中,由日历界面管理的图像文件的集合只具有和这三个月中的日期关联的图像文件。
类似地,在月-日模式中,和每天关联的可视描述指示集合中的图像文件是否与属于该天的日期信息相关联。特别地,如果集合中的任何图像文件属于一天,那么该天的可视描述和集合中没有图像文件属于该天的可视描述不相同。
参见图2中示出的实施例,如果集合中的任何图像具有属于该天的日期信息,那么,该天的号码被加粗。如果集合中没有图像文件具有属于该天的日期信息,那么该天的号码不加粗。在示出的实例中,只有9月12日和22日、以及12月1日被加粗了。这样,显示在图2所示日历界面上的所有日期中,由日历界面管理的图像文件的集合只具有与这三天相关联的图像文件。
加粗月或者天的可视表示,只是日历可以怎样地视觉上反映关于和集合中的图像文件关联的日期的信息的一个实例。可选实施例可使用多种方法中的任何一种,使得在存在图像文件的时间间隔和不存在图像文件的时间间隔之间产生可视差别。例如,可选实施例可使用不同的颜色、字体、风格、字号、阴影等以在视觉上区分具有图像的时间间隔和没有图像的时间间隔。此外,可视描述甚至可以反映有多少图像属于特定时间间隔。例如,属于某月的图像文件的数量越大,在日历界面中用于该月的名称的字体越大和/或越粗,
用日历界面指定过滤标准
根据一实施例,日历界面不仅传达关于集合中图像文件的日期信息的信息;还被用作一种机制,用户通过该机制可以指定过滤标准,动态地过滤集合。参见图1,用户可以和日历界面交互以选择一个或多个月份。为了讨论的目的,将描述一个实施例,其中(1)通过在月的可视描述上点击以选择该月,以及(2)通过在期望的月份的可视描述周围拖动边界框来选择一组月份。然而,用于选择月份和一组月份的特定用户的交互可以随不同的实施方式而变化。例如,用户可选地可以使用触摸屏或通过输入文本命令提示来选择月份。
当用户通过日历界面选择了一个或者多个月份时,这些月份的可视描述被改变以反映它们被选择了。例如,图3示出了在用户选择了从5月到10月之后的日历界面。
类似地,当日历处于月-日模式时,用户可选择特定的日期,或日期范围。在图2中,用户选择了从9月19日到10月9日。在图2所示的实施例中,靠近每周设置了周选择控件。当用户点击周选择控件时,对应该周的所有日期都被选择。例如,点击周选择控件202选择了2004年9月5-11日这周。图4示出了月-日模式的日历界面,其中选择的日期范围具有不对应于日历周的边界的边界。
一旦做了选择,用户界面控件可被提供以扩展、添加、或移除选择集的项。例如,假定在年-月的界面上选择了2004年6月和7月。如果用户按住命令键并点击2004年5月,那么2004年5月将被添加到所选择的月份而没有去除2004年6月和7月。如果按住命令健并点击选择集合中的月,那么该月从该选择集合中去除而不会另外影响该选择集合的成员。
可采用其它的组合键或键/鼠标组合来扩展选择集合。例如,再次假定当前选择了2004年6月和7月。如果用户在点击2004年12月的同时,按下特定键,则该选择自动从2004年6月扩展到2004年12月,包括其间所有的月份。这些只是用户界面控件的实例,该界面控件可用于方便地选择期望的时间间隔。这些选择控件可以类似地用于所有的日历模式(如,年-月模式,月-日模式,以及天-小时模式)。
循环时间间隔的选择
根据一个实施例,日历界面为简单地选择循环时间间隔提供控制。例如,在月-日模式中,用户可以选择特殊的一组日期,然后右击该选择。响应于该右击,向用户呈现一个包括循环模式选项的菜单。在剩余选项中,循环模式选项可包括,“按月,周的日期”,“按年,周的日期”,“按月,根据日期”,“按年,根据日期”。
如果选择了“按月,周的日期”选项,那么基于当前所选择的周的日期,自动地在每月的范围内选择日期的范围。例如,图4中,所选择的时间间隔从第二个星期二直到第三个星期四。如果然后用户选择了“按月,周的日期”选项,则将选择每个月的第二个星期二到第三个星期四。
如果选择了“按年,周的日期”选项,那么基于当前所选择的周的日期,自动地选择用于每年的日期的范围。例如,在图4中,所选择的时间间隔从2004年9月的第二个星期二直到第三个星期四。如果然后用户选择了“按年,周的日期”选项,那么将选择用于每年的9月的第二个星期二到第三个星期四。
如果选择了“按月,根据日期”选项,那么基于当前所选择的日期范国,自动地在每个月内选择日期的范围。例如,图4中,所选择的时间间隔从2004年9月14日直到9月23日。如果然后用户选择了“按月,根据日期”选项,那么将选择每个月的14日到23日。
如果选择了“按年,根据日期”选项,那么基于当前所选择的日期,自动选择用于每年的日期范围。例如,在图4中,所选择的时间间隔从2004年9月14日到2003年9月23日。如果然后用户选择了“按年,根据日期”选项,那么将选择每年的9月14日到9月23日。
当日历处于年-月模式时,也可以指定循环模式。例如,如果用户已经选择了2003年的5到10月,用户可以选择“按年重复”选项以选择每年的5月到10月。图3示出了在用户执行了5月到10月选择的按年重复之后的日历界面。
根据一个实施例,所选择的时间间隔显示在日历界面上的方式随所应用的循环模式而改变。例如,如果没有指定循环模式,那么所选择的时间间隔可以以一种高亮(例如蓝色高亮)的形式显示。如是指定了循环模式,那么所选择的时间间隔可以用另一种高亮的形式显示(例如紫色高亮)。不同的高亮也可以用于区分不同类型的循环模式。例如,按月循环模式可以引起所选择的时间间隔以绿色高亮显示,而按年循环模式可以引起所选择的时间间隔以红色高亮显示。
使用高亮颜色只是与循环模式相关联的选择可以视觉上区别于不与循环模式相关联的选择的一个实例。其它的视觉上指示这种区别的方式包括,但是不限于此,改变与选择相关的颜色、风格、和/或字体,或者在选择的周围标记勾号或其它的视觉指示器。此处描述的技术不限于任何特定的将与循环模式相关联的选择和不与循环模式相关联的选择进行视觉区别的方式。
不同的实施方式可以使用不同的循环选择技术。例如,在一个实施例中,在日期指示器上单击可以选择没有任何循环的日期,而当按住控制按钮时执行点击,则可以选择日期并自动地应用特定的循环模式。所应用的循环模式可以变化,例如,基于在选择日期的时候按下了哪个选项键。以该种方式使用选项键,以及用右击操作来产生循环模式选项的菜单,只是可以怎样指定循环模式的两个实例。此处描述的技术不限于任何特定的用于选择和应用循环模式的机制。
应用指定日历的过滤器
响应于用户使用日历界面选择一个或多个时间间隔,将反映该选择的过滤器标准应用于与集合中的图像文件相关联的日期信息。然后将满足该标准的那些图像文件指示给用户。
例如,如在图像文件的EXIF报头中所指示的,假定日期信息是图像文件的“获取日期”。如图4所示,进一步假定用户已经使用了日历界面来选择从2004年9月14日到9月23日的时间范围。响应于该选择,将集合中的图像文件的获取日期与从2004年9月14日到9月23日的时间范围进行比较,然后将获取日期在指定的时间间隔内的图像文件组指示给用户。
这种将满足指定标准的图像文件(“过滤的图像”)指示给用户的方法可以随实施方式而变化。在一个实施例中,过滤的图像的名称列表被显示给用户。在一可选实施例中,将该集合中图像的缩略图显示在屏幕的“缩略图区”中。当用户和日历界面交互时,那些不满足标准的图像文件从编略图区消失,在缩略图区中只留下过滤的图像的缩略图。
图5是根据本发明的实施例的包括日历界面502和缩略图区504的屏幕显示500的方框图。当用户和日历界面502交互时,缩略图区504的内容改变,使得只有满足通过日历界面指定的过滤标准的那些图像文件被显示。
组合的过滤标准
在一些实施例中,可以使用其它的机制与日历界面相结合来指定过滤标准。例如,用户可能已经对图像文件进行了分类。然后用户可以使用日历界面指定与日期相关的过滤标准,以及一些其它的机制来指定基于类别的过滤标准。在这些情况下,缩略图区504可以只显示那些满足所有指定的过滤标准的图像文件的缩略图。
最终应用于数字图像的过滤标准可表达为用布尔算子,诸如AND、OR、XOR等组合的一组条件。在此描述的技术可以被用于日历界面是用于指定过滤标准的唯一机制的实施方式中,和/或者日历界面是用于指定过滤标准的多个机制中的一个的实施方式中。而且,在此描述的技术可以用在过滤标准的逻辑是简单的,和/或过滤标准的逻辑是任意复杂的实施方式中。
时区选项
某些图像获取装置连同和图像文件相关联的日期信息一起,包括时区信息。根据一个实施例,日历界面可以被设计成补偿或者忽略与图像文件相关联的时区和执行产生日历界面的软件的计算机的时区之间的差别。
例如,如果在太平洋标准时区的电脑上执行的日历界面补偿时区差,则一张拍摄于东部标准时区1月1日凌晨1点的照片将被视为拍摄于12月31日。相反,如果在太平洋标准时区的电脑上执行的日历界面被配置成忽略时区差别,则一张拍摄于东部标准时区1月1日凌晨1点的照片将被视为拍摄于1月1日。
用户界面选择
根据一个实施例,日历界面包括各种控件,以为用户提供灵活简单的使用。例如,可以提供用于在代表较早日期和较晚日期的日历之间滚动的控件。也可以提供用于在不同的显示模式,诸如年-月、月-日、天-小时模式之间切换的控件。例如,双击与月份关联的可视表示可“向下展开(drilldown)”,以使月份以月-日模式显示。
可选界面
根据一个实施例,提供了图像文件管理工具,其中日历界面只是控制图像显示区的内容的多种方式中的一种。例如,图像文件管理工具可以包括“关键字”视图和“信息”视图。当位于关键字视图时,该工具停止显示日历界面,而在显示日历界面的位置显示关键字界面。关键字界面包括与关键字相关联的可视表示,该关键字可与图像文件相关联。图6中示出了关键字界面的一个实例。
通过和关键字表示交互,用户能够将图像文件和关键字,以及基于关键字的过滤器相关联。例如,为了将一个或多个图像文件和关键字相关联,用户可以选择图像文件,并且将该选择拖动到适当的关键字表示上。作为回应,图像文件管理工具记录并在关键字和那些图像文件之间建立关联。如果在拖动操作过程中,按下了选项键,则选择的图像文件和它们被放到的关键字解除关联。在一个实施例中,与图像文件相关联的缩略图视觉上指示已经与图像文件相关联的关键字。
相反地,用户将能够选择多个关键字表示,并将该表示拖动到一张照片上或者一组照片上。响应“落”在照片上的关键字表示,照片自动地与所有落于其上的关键字相关联。
通过选择一个或者多个关键字表示,可以执行关键字过滤。响应该选择,建立了过滤标准,并且停止显示那些不满足该过滤标准的图像文件。当选择多个关键字时,过滤标准可以是,例如,与任何被显示的所选择的关键字相关联的图像文件。这样在与所选择的关键字相关联的条件之间具有隐含的OR操作。通过不同的用户界面操作,可以建立隐含的AND操作,因此只选择与所有选择的关键字相关联的图像文件。然而不同的用户界面操作可用于指定“ANDNOT”操作。由选择施加的布尔算子可以例如基于当选择关键字表示时是否按下选项键而变化。关键字界面也可以被配置为允许用户通过与关键字界面交互,来指定包括所选择的关键字的任意复杂的布尔运算。关键字表示的描述视觉上反映将被用于相应的关键字的布尔算子。例如,与OR组合的关键字用蓝色高亮显示,而与“ANDNOT”组合的关键字则用红色高亮显示。
自动关键字创建
根据一个实施例,当将图像文件添加到集合中时,图像文件管理工具确定该图像文件是否与来自一组特定预定义的“感兴趣属性值”的任何属性值相关联。感兴趣的属性值可以由用户指定和/或内置在图像管理工具中。如果新添加的图像文件和感兴趣的属性值相关联,那么图像文件被自动地与相应的关键字相关联。如果没有图像文件预先地与相应的关键字相关联,那么该关键字被添加到定义在图像文件管理工具中的该组关键字中,并且该新关键字的可视表示被显示。
例如,假定“原始图像文件类型”被作为感兴趣的属性值建立。在原始图像文件被添加到集合的第一时间,可自动建立关键字“原始”,并且新添加的原始图像文件可以自动地和关键字“原始”相关联。
图像文件类型只是可能的感兴趣属性值的一个实例。本发明不限于任何特定类型的属性值形式。例如,感兴趣的属性值可包括获取图像的特定的装置类型或装置型号、图像文件是否对应于单一的图像或电影、图像是彩色的还是黑白的,等等。
信息界面
根据一个实施例,图像文件管理工具包括“信息”视图。当处于信息视图时,该工具停止显示日历界面,而是在显示日历界面的位置显示信息界面。图7示出了信息界面的一个实例。
根据一个实施例,由图像文件管理工具支持的各种界面中的每个界面均与一组独特的用户指定的特性相关联。用户指定的特性可包括,例如,由界面呈现的不同窗口的尺寸。当用户从一个界面切换到另一个界面时,显示被改变,以反映与新选择的界面相关联的用户指定的特性。
在界面间切换
在支持多个界面的实施方式中(例如,日历、关键字、和信息界面),提供了用户界面控件,用于在图像文件管理工具的不同界面之间进行切换。根据一个实施例,界面切换控件包括一组标签,每个标签对应于一个界面。图8示出了用于在界面间切换的标签800。
日历界面和关键字界面都提供了用于施加过滤标准的机制。根据一个实施例,当用户从这些界面中的一个切换到另一个时,停止实施由用户正要从其切换的界面施加的过滤标准。这样,如果用户已经使用该关键字界面过滤了图像文件集合,则切换到日历界面将取消该基于关键字的过滤器。
与日历和关键字界面不同的是,信息界面不施加过滤器。因此,根据一个实施例,当用户从日历界面或关键字界面切换到信息界面时,任何由这些界面指定的过滤标准在信息界面中继续被应用。
根据一个实施例,在信息界面中时,视觉指示被显示以表明过滤器是否被应用到其它界面中的一个。例如,假定用户使用日历界面来施加过滤,然后切换到信息界面。在信息界面中时,用于日历界面的标签可以视觉上反映日历过滤器仍然有效。例如,用于日历界面的标签可以不同的颜色显示,或者在其上带有勾号标记。在图8所示的实例中,与日历界面相关联的标签在右上角有圆点802。类似地,如果用户使用关键字界面施加过滤器,然后切换到信息界面,则用于关键字界面的标签将视觉上反映关键字过滤器仍然有效这个事实。
根据一个实施例,当用户退出信息视图时,图像管理工具自动地回到与仍然有效的任何过滤器相关联的界面。这样,如果当用户在信息视图中时基于日历的过滤器有效,那么退出信息视图将会引起图像管理工具自动回到日历视图。类似地,如果当用户在信息视图中时基于关键字的过滤器有效,那么退出信息视图将会引起图像管理工具自动回到关键字视图。
硬件概述
图9是示出可以实施本发明的实施例的计算机系统900的框图。计算机系统900包括:总线902或用于传输信息的其他通信机构,和与总线902连接、用于处理信息的处理器904。计算机系统900还包括主存储器906,诸如随机存取存储器(RAM)或其他动态存储装置,与总线902连接,用于存储信息和将由处理器904执行的指令。主存储器906还可以用于在执行将由处理器904执行的指令期间,存储临时变量或其他中间信息。计算机系统900还包括只读存储器(ROM)908或其他静态存储器,连接到总线902,用于存储静态信息和处理器904的指令。提供存储装置910,诸如磁盘、光盘、或磁光盘,连接到总线902,用于存储信息和指令。
计算机系统900可以经由总线902连接到显示器912,诸如阴极射线管(CRT),用于将信息显示给计算机用户。包括字母数字键和其他键的输入装置914连接到总线902,用于将信息和命令选择传输到处理器904。另一种用户输入装置是光标控制器916,诸如鼠标,跟踪球、或光标方向键,用于将方向信息和命令选择传送到处理器904,并用于控制显示器912上的光标移动。该输入装置通常在两个轴上(第一轴(例如,x)和第二在轴(例如,y))具有两个自由度,允许装置指定在平面中的位置。
本发明涉及计算机系统900的使用,用于实现在此描述的技术。根据本发明的一个实施例,由计算机系统900响应于执行包括在主存储器906中的一个或多个指令的一个或多个序列的处理器904,来执行这些技术。这样的指令可以从另一计算机可读介质(诸如存储装置910)读入主存储器906。通过执行包括在主存储器906中的指令序列,使处理器904执行在此描述的处理步骤。在可选实施例中,硬接线电路可以替换软件指令或与软件指令结合以实现本发明。从而,本发明的实施例不限于硬件电路和软件的任何特定结合。
在此使用的术语“机器可读介质”指的是参与提供数据,使得机器以特定模式操作。在使用计算机系统900实现的一个实施例中,涉及多种机器可读介质,例如,向用于执行的处理器904提供指令。这样的介质可以有多种形式,包括但不限于非易失性介质、易失性介质、和传输介质。非易失性介质包括,例如,光盘、磁盘、或磁光盘,诸如存储装置910。易失性介质包括动态存储器,诸如主存储器906。传输介质包括同轴电缆、铜线、和光纤,包括构成总线902的导线。传输介质还可以是声波或光波形式,诸如那些在无线电波或红外线数据通信期间产生的声波或光波。
普通形式的计算机可读介质包括,例如,软盘、柔性盘、硬盘、磁带、或任何其他磁介质、CD-ROM、DVD、任何其他光学或磁光介质、打孔纸、纸带、具有孔图样的任何其他物理介质、RAM、PROM、EPROM、FLASH-EPROM、任何其他储存芯片或盒式磁带、以下描述的载波、或计算机可读取的任何其他介质。
多种形式的机器可读介质可以参与承载一个或多个指令的一个或多个序列到处理器904用于执行。例如,指令最初可以承载在远程计算机的磁盘上。远程计算机可以将指令加载到其动态存储器中,并使用调制解调器通过电话线发送指令。计算机系统900本地的调制解调器可以接收在电话线上的数据,并使用红外发射器将数据转换成红外信号。红外监测器可以接收在红外信号中承载的数据,并使用红外发射器将数据转换成红外信号。红外探测器可以接收红外信号承载的数据,合适的电路可以将数据放在总线902上。总线902将数据传送到主存储器906,处理器904从存储器恢复并执行指令。在被处理器904执行之前或之后,主存储器906接收的指令可以选择性地存储在存储装置910中。
计算机系统900还包括与总线902连接的通信接口918。通信接口918提供双向数据通信,连接到与局部网络922连接的网络链接920。例如,通信接口918可以是综合业务数字网(ISDN)卡或调制解调器,以提供到相应类型的电话线的数据通信连接。作为另一实例,通信接口918可以是局域网(LAN)卡,以提供到兼容LAN的数据通信连接。也可以实现无线链接。在任何这样的实现中,通信接口918均发送和接收承载表示各种类型信息的数字数据流的电信号、电磁信号、或光信号。
网络链接920通常通过一个或多个网络提供到其他数据装置的数据通信。例如,网络链接920可以提供通过局部网络922到主机924或到由互联网服务提供者(ISP)926操作的数据装置的连接。ISP926又通过现在通常称为“互联网”928的全球分组数据通信网络提供数据通信服务。局部网络922和互联网928都使用承载数字数据流的电信号、电磁信号、或光信号。通过各种网络上的信号,网络链路920上的信号,通过通信接口918上的信号(都传送数字数据给计算机系统900或者传送来自计算机系统900的数字数据)是传输信息的载波的示范性形式。
计算机系统900可以通过网络、网络链路920、和通信接口918发送信息和接收数据(包括程序代码)。在互联网的实例种,服务器930可以通过互联网928、ISP926、局部网络922、和通信接口918传输所请求的用于应用程序的代码。
接收到的代码可以在接收到时由处理器904执行,和/或存储在存储装置910、或其他非易失性存储器中用于随后处理。通过这种方式,计算机系统900可以获取载波形式的应用程序代码。
在上述的说明中,本发明的实施例已经参照许多具体细节进行了描述,这些细节可以随实施方式而变化。本发明的独占和排他性,以及申请人所期望的本发明是从本申请产生的一组特定形式的权利要求,包括后续所作的任何修改、等同替换、改进等。包含在这些权利要求中的术语,其中任何清楚地阐述于本文的定义将决定用在本权利要求中的这些术语的意思。因此,权利要求中没有清楚地叙述到的限制、元素、特性、特征、优点、或属性,绝不应该以任何方式限制本权利要求的范围。因此,本说明书和附图应该被看作是说明性的而不是限定的意思。