捕获图像数据的制作方法

文档序号:6454146阅读:173来源:国知局
专利名称:捕获图像数据的制作方法
技术领域
本发明涉及用于捕获图像数据的方法和系统。
背景技术
微软Windows提供了一种功能,当用户在键盘上按下"Print Screen (打印屏幕)"时,允许用户捕获其屏幕的内容(该内容被复 制到虚拟"剪贴板")。其他操作系统提供了类似的功能。还存在 可用的多种软件应用,其提供这种功能的更高级形式。这些应用有 时扩展屏幕捕获的能力,用以包括选择待捕获的指定窗口 ,或者允 许在保存或者输出图像之前编辑捕获的图像。
当用户正在观看的显示器设备上存在多个组分(诸如重叠窗口) 时,典型的屏幕捕获应用将在屏幕捕获功能期间丢失隐含信息(即, 下层窗口上的信息),除非特别地将各组分提取到独立的图像文件 中。例如,Softworx公司发行的Capture Professional允许用户选择 显示区域内的多个组分。这些组分例如可以是两个重叠窗口。在这 种情况下,软件继而给出用户以下选择创建两个独立的图像,这 将丢失屏幕的真实外观;或者创建如两个窗口目前所显示那样的单 个图像,在这种情况下被部分遮盖的窗口上的数据将丢失。

发明内容
根据本发明的第 一 方面,提供了 一种捕获图像数据的方法,包括 接收定义显示区域的信号,其中该显示区域的图像数据将被捕获; 访问与所定义的显示区域内的组分相关的元数据;以及,针对所定
义的显示区域内的组分,存储该组分的图像并存储相关联的位置数据。根据本发明的第二方面,提供了一种用于捕获图像数据的系统,
该系统包括显示器设备,其被布置为显示图像数据;用户接口, 其被布置为响应于已定义的用户输入而生成定义显示区域的信号, 其中该显示区域的图像数据将被捕获;以及处理器,其被布置为访 问与所定义的显示区域内的组分相关的元数据,以及,针对所定义 的显示区域内的组分,存储该组分的图像并存储相关联的位置数据。 根据本发明的第三方面,提供了 一种计算机可读介质上的计算机 程序产品,其包括用于捕获图像数据的指令集合,该集合包括用 于接收定义显示区域的指令,其中该显示区域的图像数据将被捕获; 用于访问与所定义的显示区域内的组分相关的元数据;以及用于针
对所定义的显示区域内的组分而存储该组分的图像并存储相关联的 位置数据的指令。
基于本发明,可以实现对多个显示组分(例如,窗口)的自动屏 幕捕获,而不会丟失任何隐含信息并同时维持显示区域的可视外观。 这可以包括捕获屏幕上所示的所有组分,尽管用户可以仅选择那些 所显示组分的子集。本发明的屏幕捕获方法隐含地或者明确地捕获 在该处理中捕获的所显示组分之间的位置关系。
在优选实施方式中,针对显示区域内的每个组分和所有组分,执 行存储组分的图像以及存储关联位置数据的步骤。可替换地,针对 显示区域内的用户选定组分来执行存储组分的图像以及存储关联位 置数据的步骤。该处理足够灵活,支持对所有显示组分的捕获或者 对用户选定的待存储组分的捕获。在大多数情况下,用户将执行简 单动作,诸如像传统的那样按下其鍵盘上的按钮来启动屏幕捕获。 可以使用更复杂的接口,其允许用户定义正在捕获的显示区域。显 示区域可以是用户面前的显示器设备的一部分,或者可以大于他们 正在观看的屏幕,例如,当多显示器设备的使用变得更为普遍时, 显示区域可以包含多个显示器设备的显示内容。
有利地,组分图像和关联位置数据存储在单个文件中。每个图像 作为单个文件中的层而存储。在用户选择所显示的所有内容的捕获
时,根据桌面上的所有组分来创建分层格式的单个图像,其包括作 为层的桌面本身。这意味着在单个结果文件中隐含地捕获了窗口之
间的关系,分层(x在y之上)和定位(x在y左侧3个像素并且比 y高2 5个像素)作为位置数据随同捕获的组分图像而存储。
可替换地,组分图像存储在各自的文件中并且位置数据存储在控 制文件中,该控制文件包括各个组分图像文件的细节。捕获方法的 该实施方式将每个所捕获组分的图像存储在独立的图像文件中,诸 如jpeg文件。除了各个组分的文件,还创建控制文件,其包含将组 分图像文件联系在一起的位置数据。这例如可以存储在简单XML格 式的文件中。


下面将参考附图仅以示例的方式对本发明的实施方式进行描述, 其中
图1是计算系统的示意图,
图2是捕获图像数据的方法的流程图。
图3是包括多个图像层的图像文件的示意图,以及
图4是捕获图像数据的可替换方法的流程图。
具体实施例方式
图1示出了计算系统10,其可以用于捕获图像数据。系统10包 括显示器设备12,其可以是适于显示图像数据的任何显示设备; 用户接口设备,其是键盘14和鼠标16;以及处理器18。处理器18 接收来自键盘14和鼠标16的输入,并且控制显示器12上的图像, 这是本领域的常规技术。
在图1的示例中,显示器设备12被示为显示了三个层叠窗口 A、 B以及C。为了容易理解,用较大的单字来示出这些窗口 ,但是在系 统IO的实际实施方式中,显示器设备12所显示的每个窗口将承载 详细的信息,例如,照片的图像文件、或者文字处理文档、或者因
特网浏览器。
以类似的方式,在三个窗口后面,用户的桌面是可见的,可以{人 为其是与显示器设备12的显示面积相同大小的窗口 。桌面在三个窗 口 A、 B以及C后面,并且为了容易理解而被示为点区域。两个窗 口 A和B每个的一定量的显示区域被其他窗口遮蔽。
当用户期望捕获显示器设备12所显示的图像时,处理器18被布 置为响应于已定义的用户输入而生成定义显示区域的信号,其中该 显示区域的图像数据将被捕获。在最简单方案中,用户按下键盘14 上的"打印屏幕"按钮,其作为所述已定义的用户输入,并且设备 12的整个显示区域被捕获。更复杂的布置是可能的仅捕获显示器 设备12上的一些组分。
一旦处理器18已经经由键盘14接收了来自用户的捕获图像数据 的信号,则处理器18将访问与正在捕获的所定义显示区域内的不同 组分相关的元数据。在图l的示例中,如果用户正在捕获整个显示, 则处理器18需要捕获四个组分;三个窗口A、 B以及C,以及背景 桌面。
处理器18能够经由操作系统可编程地访问显示窗口 。使用针对特 定操作系统的适合的编程API接口 ,其允许应用与其他窗口交互。处理 器18运行这种应用,其允许处理器访问设备12所显示组分的有关信息 (元数据)。
例如,在Visual Basic编程语言中,存在用于与微软Microsoft交互 的API,其包括获得针对操作系统已知的所有窗口的句柄阵列的能力。 利用窗口的句柄,处理器18 (其执行调用API的适当应用)可以获得 关于任何指定窗口的各种信息。
可以访问的元数据包括诸如窗口标题(显示在标题栏上的文本)、 窗口尺寸(以像素为单位的宽和高)、窗口是否可见(最小化)、窗口 的z深度(允许应用按照显示器概念上的从"前"到"后"来标识窗口 的顺序)、窗口的位置(通过左上角的x和y坐标给出)、以及选定窗 口的外观的位像等信息。通过此API,处理器18还可以与每个窗
口可编程地交互,从而能够最小化(即,隐藏)以及恢复(即,显示) 指定窗口。
显示器设备12所显示的图像所包含的不同组分(诸如各窗口和桌 面背景)均具有相关联的元数据(诸如上文列出的信息),其包括诸如 组分的位置和大小的信息。
图2示出了当处理器18执行此屏幕捕获功能时所执行的方法的第 一实施方式。在步骤210,用户通过请求进行屏幕捕获来开始处理。在 步骤212,响应于接收针对捕获的请求,处理器18访问与显示所包含的 组分相关的元数据。如上所述,这可以经由适合的API,其可以查询在 该特定时刻存在的、操作系统所保持的关于特定窗口的数据。在同一步 骤中,可以查询操作系统,以获得关于用户桌面(背景)的信息。
在屏幕捕获方法的第一实施方式中,处理器18将显示的各组分捕 获到单个文件中。针对显示区域内的组分,组分的图像和相关联的位置 数据存储在此单个文件中。可以实现其的一种方式是通过使用支持层的 图像格式,其中每个组分图像文件作为独立的层来存储。在步骤214, 处理器18将创建使用分层的单个图像文件。
处理器18使用支持包含多个层的图像的图像文件格式。多个专用 和开源的文件格式包括这种功能,诸如.psd文件(来自Adobe的 Photoshop ) 、 .psp文件(由来自Corel的Paint Shop Pro所支持)以及.xcf 文件(由GIMP支持,开源)。所有这些图像格式支持多种方式来操纵 层,诸如能够选择性地、独立于任何其他层地来移动层,以及通常在 根据调色板视图来查看图像时隐藏一个或多个层,其中调色板将每个层 显示为独立的缩略图,该缩略图可以在显示/隐藏之间切换。所有这些 格式都支持层的透明性,这确保层中未绘出的部分不会遮蔽下面层上的 图像。
在步骤216,处理器18存储第一组分的图像,其是桌面图像。处理 器18继而循环执行步骤218到220,将所定义的显示区域内的其他组分 保存为图像文件内独立的层。 一旦所有组分已经作为独立的图像文件而 被捕获,方法在步骤222结束。与各个图像相关联的位置数据页存储在
该单个文件中。该数据可以是简单的图像层的次序,其有效地给出文件 冲各个组分的从前至后位置,或者该数据可以是更详细的信息,诸如每
个组分的实际x和y坐标(其由处理器18从操作系统所存储的元数据 中获取)。
图3示出了图1的四个组分,将在支持层的单个图像文件中捕获这 些组分。四个层20均是独立捕获的,其顺序为从后到前,其中层20a 是用户的桌面(包含应用和快捷方式等的图标),层20b至20d均是独 立的组分窗口 ,其中针对窗口的所有图像数据被捕获在文件中并且被保 存为层20。四个层20被示为形成方形,但是这仅是为了简化解释;在 实际中,层20将按照z深度顺序来存储,z深度构成存储在单个文件中 的关于每个层20的位置信息。
全部独立组分(包括桌面)的图像已经记录在了该分层的图像文件 中。当在适合的应用中观看此图像文件时,将看到原始的屏幕图像,其 与用户按下按钮从而触发屏幕捕获处理时一样,但是被其他窗口遮蔽的 桌面和窗口部分中的所有信息也存在于此单个文件中,并且文件的^C看
者可以通过操纵文件内的层来访问各个组分的图像。
例如,如果文件的观看者期望查看整个窗口 "A,,,则其可以将该 层带到前面,或者其可以删除或者隐藏其期望访问的特定层前面的层。 已经执行了智能屏幕捕获,其不仅限于允许用户访问原始屏幕图像,还 可以捕获并且随后访问被遮蔽的数据。
在图1至图3的示例中,捕获在单个文件中的被遮蔽数据包括所显 示组分的那些被其他组分遮蔽的元素。其它类型的被遮蔽数据也可以通 过本发明的屏幕捕获方法来存储。例如,如果窗口被这样定位其内容 的一部分在显示设备12的"外边",则仍然将捕获整个窗口,并且对 存储不同组分的最终文件进行操纵的用户将能够访问在设备12的原始 屏幕显示上未示出的数据。
类似地,如果任何组分(诸如窗口 )按照需要使用滚动条的方式来 显示、,从而使得窗口当前没有显示全部窗口数据时,则当捕获各个组 分窗口时,处理器18还可以捕获此窗口中的未见部分。这可以通过4吏
用API来实现,其将允许滚动任何独立窗口的内容或者对窗口进行扩 展,从而捕获该窗口的所有数据。为了支持该功能,支持分层的一些通
用文件格式将需要修改,但是该功能例如可以在下文参考图4讨论的本
发明的第二实施方式中实现。
同样地,如果任何窗口当前是打开的但却被最小化,从而使得仅在
任务栏(在Windows中)上显示其标题,则当执行屏幕捕获方法时, 处理器也可以在所有最小化的窗口之间循环,并将其布置为被最大化、 被捕获、继而再次被最小化。此处理的最终结果将是当在适合的阅览 器中打开时,包含层的图像文件看起来仍然像是显示器设备12上的原 始屏幕显示一样,但是在桌面上看到的最小化组分将被捕获到文件中作 为独立的层,其能够被最终用户观看。
如果用户使用公知为虛拟桌面的系统中的多个显示设备,则当用户 执行屏幕捕获功能时,其可以捕获其当前正在使用的所有显示设备上的 所有信息。处理器18在接收定义显示区域的信号(该显示区域的图像 数据将被捕获)之后开始屏幕捕获。因此显示区域可以是多个显示设备 中的区域。
处理器访问」燥作系统,并且获取多个桌面和目前正在使用的所有窗 口所有信息。继而按照相对位置信息依次捕获这些桌面和窗口,并且将 其存储在单个文件中。当用户打开所得文件时,他们将看到对应于用户
的主显示器上图像的图像,但是将存在滚动条,其允许用户查看虚拟桌 面的其他部分。实际上,创建的文件具有虚拟桌面大小的图像。各个窗 口将作为层而存在并且可以被独立访问,而不丢失遮蔽的数据。
类似地,如果用户具有虛拟三维(3D)桌面,则维持此图像和虚拟 3D环境中的组分内的逻辑关系。通过平面观看设备,利用桌面空间中 的对象的朝向和z轴定位的概念(窗口可能不是恰好在另一窗口后面, 而是可能在其后"x个单位,,,或者可以倾斜地观看,或者甚至概念上 移动到后面或者用户一侧),通常可以将3D桌面视为传统的2D桌面。 代替捕获可观看区域,当用户通过按下小键盘上的按钮来启动屏幕捕获 功能时,将捕获概念3D空间整体(或者通过一些选择机制来选择性捕
获)。Sun的实马全3D桌面http:〃www.sun.com/software/Iooking_glass/ 和可行的SD文件才各式http:〃www.web3d.org/x3d/overview.html,给出 关于3D桌面的进一步信息。
执行屏幕捕获方法的可替换实施方式。同第一实施方式中一样(图2), 在接收到启动屏幕捕获的信号时,处理器18访问操作系统,以获取当 前存在的窗口的细节。这将是窗口列表以及关于那些组分的元数据,这 些元数据包括窗口的图像、窗口位置、窗口是否被最小化等。
第二方法与第一实施方式的区别在于组分的图像不是保存在单个 文件中。在此实施方式中,组分图像存储在独立文件中并且位置数据存 储在控制文件中,该控制文件包括组分图像文件的细节。在步骤414, 控制文件被创建为XML文件。
在步骤416,将显示的第一组分存储为诸如.jpg的传统文件格式的 独立图像文件,其中与该图像相关的信息存储在控制文件中。继而针对 正在捕获的每个组分重复步骤418和步骤420,并且当所有这种组分已 经被存储时,该方法在步骤422结束。捕荻方法的第二实施方式的最终 结果是一组图像文件以及包括位置信息的XML控制文件,该位置信息 可以用来根据各个图像文件(每个图像文件均包含屏幕组分的表示)的 内容来重构原始屏幕显示。如在第一实施方式中一样,维护各个组分的 被遮蔽细节并将其存储在图像文件中。
在图像捕获方法的两个实施方式中,可能需要可编程地操纵正在存 储的图像。许多编程语言提供了操纵图像的能力,包括调整大小以及转 换图像格式的能力。例如,如果从操作系统获取了窗口的细节,则Visual Basic提供了得到窗口的位像的能力。Visual Basic库还提供了将此 位图转换为各种图像形式的能力。例如,存在针对上文参考第一实施方 式描述的图像格式而提供该能力的库。
ImageMagick库(http:〃www.imagemagick.org/script/api.php )才是供了 针对各种编程语言的可编程接口,其支持具有多个层的.xcf (GIMP)图 像的创建。可能需要该图像操纵来将针对特定组分而获取的图像的格式
转换为捕获方法可以使用的格式(例如,在创建支持使用层的图像文件 时转换)。
权利要求
1. 一种捕获图像数据的方法,包括接收定义显示区域的信号,其中,所述显示区域的图像数据将被捕获;访问与所述所定义显示区域内的组分相关的元数据;以及,针对所述所定义显示区域内的组分集合中的每个组分,存储所述组分的图像并存储相关联的位置数据。
2. 根据权利1所述的方法,其中,所述存储相关联的位置数据系,所述位置关系包括所述组分相对于彼此的次序。
3. 根据权利2所述的方法,其中,在三维虚拟桌面环境中,所 述存储的位置关系包括x轴值和y轴值以及z轴深度值。
4. 根据权利2所述的方法,其中,将对应于所述所定义显示区 域内多个组分的多个图像存储为分层图像文件内的多个层。
5. 根据权利1所述的方法,其中,针对所述显示区域内的每个 组分和所有組分,执行所述存储组分的图像以及存储相关联的位置 数据的步骤。
6. 根据权利1所述的方法,其中,针对所述显示区域内选定的 用户指定组分,执行所述存储组分的图像以及存储相关联的位置数据的步骤。
7. 根据前述权利要求中任一项所述的方法,其中,所述组分图 像和相关联的位置数据存储在单个文件中。
8. 根据权利7所述的方法,其中,将每个图像存储为所述单个 文件中的层。
9. 根据权利要求l、 2或者3所述的方法,其中,所述组分图像 存储在各自文件中,并且所述位置数据存储在控制文件中,所述控 制文件包括所述各自组分图像文件的细节。
10. —种用于捕获图像数据的系统,包括 显示器设备,其被布置为显示图像数据;用户接口,其被布置显示区域的图像数据将被捕获;以及处理器,其被布置为访问与所 述所定义显示区域内的组分相关的元数据,以及,针对所述所定义 显示区域内的组分来存储所述组分的图像并存储相关联的位置数据。
11. 根据权利IO所述的系统,其中,所述处理器被布置为针 对所述显示区域内的每个组分和所有组分,存储组分的图像并且存 储相关联的位置数据。
12. 根据权利IO所述的系统,其中,所述处理器被布置为针 对所述显示区域内选定的用户指定组分,存储组分的图像并且存储 相关联的位置数据。
13. 根据权利IO所述的系统,其中,所述组分图像和相关联的 位置数据存储在单个文件中。
14. 根据权利13所述的系统,其中,将每个图像存储为所述单 个文件中的层。
15. 根据权利IO所述的系统,其中,所述组分图像存储在各自 文件中,并且所述位置数据存储在控制文件中,所述控制文件包括 所述各自组分图像文件的细节。
16. —种计算机可读介质上的计算机程序产品,其包括用于捕获 图像数据的指令集合,该集合包括用于接收定义显示区域的信号的指令,其中所述显示区域的图 像数据将被捕获;用于访问与所述所定义显示区域内的组分相关的元数据的指 令,以及,用于针对所述显示区域内的组分集合而存储所述组分的图像并 存储相关联的位置数据的指令。
17. 根据权利16所述的计算机程序产品,其中,针对所述显示 区域内的每个組分和所有组分,执行所述存储组分的图像以及存储相关联的位置数据的步骤。
18. 根据权利16所述的计算机程序产品,其中,针对所述显示 区域内选定的用户指定组分,执行所述存储组分的图像以及存储相 关联的位置数据的步骤。
19. 根据权利16所述的计算机程序产品,其中,所述组分图像 和相关联的位置数据存储在单个文件中。
20. 根据权利19所述的计算机程序产品,其中,将每个图像存 储为所述单个文件中的层。
21. 根据权利16所述的计算机程序产品,其中,所述组分图像 存储在各自文件中,并且所述位置数据存储在控制文件中,所述控 制文件包括所述各自组分图像文件的细节。
全文摘要
一种捕获图像数据的方法,包括接收(210)定义显示区域的信号,其中该显示区域的图像数据将被捕获;访问与所定义的显示区域内的组分相关的元数据;以及针对显示区域内的组分,存储(214-222)每个组分的图像并存储相关联的位置数据,该位置数据包括组分之间的位置关系。创建(222)分层的图像文件,其包括多个组分中每个组分的图像以及定义组分相对于彼此的次序的信息。
文档编号G06F3/12GK101395570SQ200780007722
公开日2009年3月25日 申请日期2007年4月17日 优先权日2006年4月20日
发明者A·P·比尔兹莫尔, D·莱恩 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1