在 UNIX 和 Linux 系统上捕获屏幕快照和程序交互: 第 3 部分,高级图形屏幕和窗口捕获

捕获应用程序的屏幕图像是所有技术作家、大多数图形应用程序开发人员、许多技术市场营销人员甚至许多用户需要做的事情。现代的 UNIX® 系统提供许多用于捕获图形屏幕和单个窗口的工具。本文是分三部分的系列文章的最后一部分,主要关注在大多数 Linux® 和 UNIX 系统上可以使用的图形工具。这些工具可以简便地捕获屏幕的部分图像,帮助说明正确和不正确的程序行为。

William von Hagen, 系统管理员,作家, WordSmiths

William von Hagen 担任 UNIX 系统管理员已经超过 20 年,并从 1993 年开始成为 Linux 爱好者。Bill 是一些图书的作者或合著者,涉及的主题包括 Ubuntu Linux、Xen Virtualization、GNU Compiler Collection (GCC)、SuSE Linux、Mac OS X、Linux 文件系统和 SGML。他还为 Linux 和 Mac OS X 出版物和网站撰写了许多文章。



2011 年 6 月 15 日

正如本系列的 第 1 部分第 2 部分 所讨论的,捕获屏幕快照和用于演示应用程序行为的程序交互记录是技术作家、技术市场营销人员和提交应用程序 bug 报告的用户经常要完成的任务。本系列的第 1 部分主要讨论捕获程序交互,第 2 部分主要讨论使用命令行应用程序捕获图像。本文是本系列的最后一篇,主要讨论用于 UNIX® 和 Linux® 系统上捕获屏幕的图形应用程序。

UNIX 和 Linux 图形屏幕捕获概述

所有现代的 Linux 和 UNIX 系统都提供某种图形桌面,其中通常包含至少一个图形屏幕捕获应用程序 — 常常是专门针对特定桌面环境的应用程序。例如,GNOME 提供 gnome-screenshot,KDE 提供 KSnapshot。这两个程序都可以捕获对话框、窗口和整个屏幕。除了这些比较简单的内置的屏幕和窗口捕获实用程序之外,还有几个更高级的适用于 Linux 和大多数 UNIX 系统的应用程序也支持屏幕捕获,比如 GNU Image Manipulation Program (GIMP) 和 Shutter。

特定于桌面的屏幕捕获实用程序

对大多数 Linux 和 UNIX 系统可用的 GNOME 和 KDE 桌面环境都包含利用各自环境功能的屏幕快照实用程序。这些实用程序速度快,内存需求较小,且易于使用。但是,它们提供的屏幕捕获选项和功能不如本文后面讨论的通用应用程序那么丰富(见 通用屏幕捕获实用程序)。

使用 gnome-screenshot

gnome-screenshot 应用程序很容易执行,系统需求很低,因此是在 GNOME 桌面上执行简单屏幕捕获的绝佳选择。但是,它只能以 Portable Network Graphics (PNG) 格式捕获图像,没有像本文后面讨论的 GIMP 和 Shutter 等应用程序那样提供细粒度的对象选择控制。

在所有基于 GNOME 的 Linux 和 UNIX 系统上都有 gnome-screenshot 应用程序。可以通过以下方式之一调用它:

  • 选择菜单命令 Applications > Accessories > Take Screenshot
  • Print Screen 键(有时候简写为 PrtSc)。
  • Alt-Print Screen 组合键。
  • 使用命令行。

对于每种调用方法,gnome-screenshot 应用程序的表现略有差异,因为它们用不同的选项执行此命令。

Take Screenshot 菜单命令

选择 Take Screenshot 菜单命令就会以交互模式启动 gnome-screenshot 应用程序(使用 --interactive 命令行选项)。这显示 图 1 所示的对话框。

图 1. gnome-screenshot 配置对话框
gnome-screenshot 应用程序的配置对话框的屏幕快照

Print Screen 键

Print Screen 键就会不带选项地调用 gnome-screenshot 应用程序,这捕获整个屏幕并显示 图 2 所示的对话框。在这个对话框中,可以指定保存屏幕图像的文件的名称和位置。

图 2. gnome-screenshot 保存屏幕快照对话框
gnome-screenshot 应用程序的保存对话框的屏幕快照

Alt-Print Screen 组合键

Alt-Print Screen 组合键(即按住 Alt 键并按 Print Screen 键)就会利用 -w 选项调用 gnome-screenshot 应用程序,这捕获当前窗口,同样显示 图 2 所示的对话框。

命令行

从命令行调用 gnome-screenshot 应用程序时,您能够指定任何选项。可以通过执行 man gnome-screenshot 命令查看 gnome-screenshot 应用程序的联机参考信息,了解所有可用的选项。

使用 KSnapshot

KSnapshot 比 GNOME 上的 gnome-screenshot 强大得多,也更灵活,但是只能在 KDE 桌面系统或也安装了 KDE 和相关库的 GNOME 系统上使用。它对于 KDE 桌面上的大多数屏幕捕获需求是绝佳的选择;但是,它也没有像下一节讨论的 GIMP 和 Shutter 等应用程序那样提供细粒度的对象选择控制。

在所有基于 KDE 的 Linux 和 UNIX 系统上都有 KSnapshot。可以通过以下方式之一调用它:

  • 选择菜单命令 K Menu > Applications > Graphics > Take Screenshot
  • Alt-F2 组合键并在 Run Command 对话框中输入它的名称。
  • 使用命令行。

以这些方法启动 KSnapshot 都会显示 图 3 所示的对话框。

图 3. KSnapshot 配置和控制对话框
KSnapshot 配置和控制对话框的屏幕快照

选择希望捕获的图形对象的类型(通过 Capture mode 下拉菜单)、可选的延时和是否包含窗口装饰之后,单击 New Snapshot 以捕获指定的对象或选择的区域。在同一对话框中显示新的屏幕捕获。然后可以用图像编辑应用程序打开它,或者通过单击 Save As 并指定文件的位置和名称把它保存到文件中。在 Filter 中,可以指定在保存新图像时希望使用的图形文件格式,选项包括 Encapsulated PostScript (EPS)、Joint Photographic Experts Group (JPEG)、PNG、X BitMap (XBM)、X PixMap (XPM) 和 Microsoft® Windows® BMP and Icon 格式。

通用屏幕捕获实用程序

前面讨论了 GNOME 和 KDE 桌面默认提供的屏幕和图像捕获实用程序。它们都提供高级的功能,比如能够手工选择要捕获的屏幕部分以及在经过一定的延时之后捕获图像(这让您能够选择菜单、在对话框中显示特定内容等等)。尽管这些内置的应用程序很不错,但是其他 Linux 和 UNIX 应用程序提供了它们不具备的高级功能。

本文余下的部分讨论两个应用程序,它们提供很多出色的功能,即使是对图像要求最高的技术作家也会满意。第一个应用程序 GIMP 并不是作为屏幕/图像捕获应用程序设计的 — 它是一个包含屏幕捕获功能的图像编辑应用程序。第二个应用程序 Shutter 是一个 Perl 脚本,它提供用于指定、选择和管理屏幕捕获的出色的用户界面。

使用 GIMP

GIMP 是一个流行的栅格图像编辑应用程序,适用于几乎所有现代图形计算平台,提供许多与 Adobe Photoshop 相同的功能。GIMP 集成的屏幕捕获功能和先进的图像编辑功能让它成为屏幕捕获和后续处理的自然选择。尽管我发现 Shutter 对于 GNOME 系统是一个卓越且方便的屏幕捕获应用程序,但是在普适性和功能方面比不上 GIMP。

GIMP 适用于所有 Linux 发行版,也适用于大多数其他操作系统,包括 Hewlett-Packard HP-UX、IBM® AIX®、Mac OS® X、Microsoft Windows 和 Sun and Oracle Solaris。(在 AIX Toolbox for Linux Applications CD 上可以找到 GIMP for AIX。)GIMP 提供先进的集成的图像捕获功能,可以在捕获图像之后马上编辑它们。

GIMP 与 GNOME 桌面之间的关系常常会引起误解。GIMP 不是 GNOME 应用程序,因此不需要在系统上安装 GNOME 桌面或由 GNOME 使用的库。实际上,GIMP 需要名为 GIMP Toolkit (GTK) 的底层图形用户界面 (GUI) 工具包。顾名思义,GTK 原来是作为供 GIMP 使用的可重用组件和函数集开发的。因此,GIMP 只需要 GTK 的现代版本(GTK+、GTK2 等等)和一些 X Window System 库(或在非 UNIX 和非 Linux 系统上功能相当的库),就可以在任何平台上运行。

要想使用 GIMP 捕获屏幕图像,应该选择 File > Create > Screenshot 菜单命令,这显示 图 4 所示的对话框。

图 4. GIMP 配置和控制对话框
GIMP 配置和控制对话框的屏幕快照

在这个对话框中,可以指定是要捕获整个屏幕、特定窗口或对话框还是可选择的区域。还可以指定在捕获窗口时是否希望捕获窗口装饰,可以以秒为单位指定捕获图像之前的延时。

捕获图像之后,GIMP 自动地打开图像供编辑,见 图 5。在 GIMP 中修改捕获的图像之后,可以使用 File > Save As 菜单命令把图像保存到文件中。

图 5. 在 GIMP 中捕获的图像
在 GIMP 中捕获的图像的屏幕快照

使用 Shutter

Shutter 是一个 Perl 脚本,它需要 GNOME 库,因此通常在运行 GNOME 桌面的系统上运行。Shutter 原来名为 gscrot,因为过去它为命令行屏幕捕获应用程序 scrot 提供 GNOME 包装器。但是,Shutter 现在完全独立了,不再需要 scrot。Shutter 提供出色的用于指定、选择和管理屏幕捕获的用户界面。

可以从命令行或通过在 GNOME 菜单中选择 Applications > Accessories > Shutter 命令启动 Shutter。在第一次启动 Shutter 时,可能希望通过 Edit > Preferences 对话框配置它,见 图 6

图 6. 配置 Shutter
配置 Shutter 的屏幕快照

在这个对话框的各个选项卡中,可以指定捕获的图像的命名方案(包括基本名称和图像编号)、是否在捕获的窗口图像中包含窗口装饰、自动保存捕获的图像的格式和位置等等。

配置完 Shutter 之后(或者希望采用默认设置),可以按以下方法之一捕获图像:

  • Full Screen 下拉菜单中选择希望捕获的屏幕(或虚拟屏幕)以捕获全屏图像。
  • Window 下拉菜单中选择希望捕获的窗口的名称以捕获特定的窗口或对话框。
  • 选择 Window 下拉菜单右边的图标以捕获窗口的一部分。
  • 选择以上图标右边的图标以捕获一个菜单或一组层叠菜单。

捕获的图像显示在 Shutter 中,见 图 7

图 7. 在 Shutter 中捕获的图像
在 Shutter 中捕获的图像的屏幕快照

Shutter 根据在 Preferences 对话框中指定的命名方案自动地保存它捕获的图像。还可以指定编号方案 — 如果要捕获一系列图像,它们必须按一定的次序出现,那么指定编号方案很方便。它还在主对话框中单独的面板中显示所有屏幕捕获,让您能够方便地检查是否已经捕获了所需的所有图像。关于 Shutter 的更多信息参见 参考资料

结束语

本文讨论的图形屏幕捕获实用程序能够帮助不需要(或不想)使用命令行的用户简便地执行屏幕捕获。

GNOME 和 KDE 系统提供的默认图形屏幕捕获实用程序对于简单的屏幕捕获很方便,但是如果需要调整图像或要捕获多个图像,则使用 GIMP 和 Shutter 会更好。

GIMP 很适合作为标准的屏幕捕获工具,因为它适用于所有现代桌面计算机系统。在除 GNOME 之外的所有系统上我通常使用 GIMP,在 GNOME 系统上使用 Shutter,因为 Shutter 提供前缀、编号和先进的选择功能。

参考资料

学习

  • gnome-screenshot 包是 GNOME Utilities 包的组成部分,在运行 GNOME 桌面的所有系统上都默认安装它。
  • 在运行 KDE 桌面的所有系统上都默认安装 KSnapshot
  • AIX and UNIX 专区:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。
  • AIX and UNIX 新手入门:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。
  • AIX and UNIX 专题汇总:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。
  • AIX and UNIX 下载中心:在这里你可以下载到可以运行在 AIX 或者是 UNIX 系统上的 IBM 服务器软件以及工具,让您可以提前免费试用他们的强大功能。
  • IBM Systems Magazine for AIX 中文版:本杂志的内容更加关注于趋势和企业级架构应用方面的内容,同时对于新兴的技术、产品、应用方式等也有很深入的探讨。IBM Systems Magazine 的内容都是由十分资深的业内人士撰写的,包括 IBM 的合作伙伴、IBM 的主机工程师以及高级管理人员。所以,从这些内容中,您可以了解到更高层次的应用理念,让您在选择和应用 IBM 系统时有一个更好的认识。
  • 技术书店 浏览关于这些和其他技术主题的图书。

获得产品和技术

  • GIMP 是一个栅格图像编辑应用程序,它也提供对话框、窗口和屏幕捕获功能。
  • Shutter 是一个强大且易用的对话框、窗口和屏幕捕获应用程序,具有许多定制的强大功能。

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=681065
ArticleTitle=在 UNIX 和 Linux 系统上捕获屏幕快照和程序交互: 第 3 部分,高级图形屏幕和窗口捕获
publish-date=06152011