史上最全的使用 gnome-screenshot 获取屏幕快照指南-阿里云开发者社区

开发者社区> 开发与运维> 正文

史上最全的使用 gnome-screenshot 获取屏幕快照指南

简介:

在应用市场中有好几种屏幕截图工具,但其中大多数都是基于 GUI 的。如果你经常在 linux 命令行上工作,而且正在寻找一款优秀的功能丰富的基于命令行的屏幕截图工具,你可能会想尝试 gnome-screenshot。在本教程中,我将使用易于理解的例子来解释这个实用程序。

请注意,本教程中提到的所有例子已经在 Ubuntu 16.04 LTS 上测试过,测试所使用的 gonme-screenshot 版本是 3.18.0。

关于 Gnome-screenshot

Gnome-screenshot 是一款 GNOME 工具,顾名思义,它是一款用来对整个屏幕、一个特定的窗口或者用户所定义一些其他区域进行捕获的工具。该工具提供了几个其他的功能,包括对所捕获的截图的边界进行美化的功能。

Gnome-screenshot 安装

Ubuntu 系统上已经预安装了 gnome-screeshot 工具,但是如果你出于某些原因需要重新安装这款软件程序,你可以使用下面的命令来进行安装:


  1. sudo apt-get install gnome-screeshot

一旦软件安装完成后,你可以使用下面的命令来启动它:


  1. gnome-screenshot

Gnome-screenshot 用法/特点

在这部分,我们将讨论如何使用 gnome-screenshot ,以及它提供的所有功能。

默认情况下,使用该工具且不带任何命令行选项时,就会抓取整个屏幕。

Starting Gnome Screenshot

Starting Gnome Screenshot

捕获当前活动窗口

如何你需要的话,你可以使用 -w 选项限制到只对当前活动窗口截图。


  1. gnome-screenshot -w

Capturing current active window

Capturing current active window

窗口边框

默认情况下,这个程序会将它捕获的窗口的边框包含在内,尽管还有一个明确的命令行选项 -b 可以启用此功能(以防你在某处想使用它)。以下是如何使用这个程序的:


  1. gnome-screenshot -wb

当然,你需要同时使用 -w 选项和 -b 选项,以便捕获的是当前活动的窗口(否则,-b 将没有作用)。

更重要的是,如果你需要的话,你也可以移除窗口的边框。可以使用 -B 选项来完成。下面是你可以如何使用这个选项的一个例子:


  1. gnome-screenshot -wB

下面是例子的截图:

Window border

Window border

添加效果到窗口边框

在 gnome-screenshot 工具的帮助下,您还可以向窗口边框添加各种效果。这可以使用 --border-effect 选项来做到。

你可以添加这款程序所提供的任何效果,比如 shadow 效果(在窗口添加阴影)、bordor 效果(在屏幕截图周围添加矩形区域)和 vintage 效果(使截图略微淡化,着色并在其周围添加矩形区域)。


  1. gnome-screenshot --border-effect=[EFFECT]

例如,运行下面的命令添加 shadow 效果:


  1. gnome-screenshot border-effect=shadow

以下是 shadow 效果的示例快照:

Adding effects to window borders

Adding effects to window borders

请注意,上述屏幕截图主要集中在终端的一个角落,以便您清楚地看到阴影效果。

对特定区域的截图

如何你需要,你还可以使用 gnome-screenshot 程序对你电脑屏幕的某一特定区域进行截图。这可以通过使用-a 选项来完成。


  1. gnome-screenshot -a

当上面的命令被运行后,你的鼠标指针将会变成 '+' 这个符号。在这种模式下,你可以按住鼠标左键移动鼠标来对某个特定区域截图。

这是一个示例截图,裁剪了我的终端窗口的一小部分。

example screenshot wherein I cropped a small area of my terminal window

example screenshot wherein I cropped a small area of my terminal window

在截图中包含鼠标指针

默认情况下,每当你使用这个工具截图的时候,截的图中并不会包含鼠标指针。然而,这个程序是可以让你把指针包括进去的,你可以使用 -p 命令行选项做到。


  1. gnome-screenshot -p

这是一个示例截图:

Include mouse pointer in snapshot

Include mouse pointer in snapshot

延时截图

截图时你还可以引入时间延迟。要做到这,你不需要给 --delay 选项赋予一个以秒为单位的值。


  1. gnome-screenshot delay=[SECONDS]

例如:


  1. gnome-screenshot --delay=5

示例截图如下:

Delay in taking screenshots

Delay in taking screenshots

以交互模式运行这个工具

这个工具还允许你使用一个单独的 -i 选项来访问其所有功能。使用这个命令行选项,用户可以在运行这个命令时使用这个工具的一个或多个功能。


  1. gnome-screenshot -i

示例截图如下:

Run the tool in interactive mode

Run the tool in interactive mode

你可以从上面的截图中看到,-i 选项提供了对很多功能的访问,比如截取整个屏幕、截取当前窗口、选择一个区域进行截图、延时选项和特效选项等都在交互模式里。

直接保存你的截图

如果你需要的话,你可以直接将你截的图片从终端中保存到你当前的工作目录,这意味着,在这个程序运行后,它并不要求你为截取的图片输入一个文件名。这个功能可以使用 --file 命令行选项来获取,很明显,需要给它传递一个文件名。


  1. gnome-screenshot file=[FILENAME]

例如:


  1. gnome-screenshot --file=ashish

示例截图如下:

Directly save your screenshot

Directly save your screenshot

复制到剪切板

gnome-screenshot 也允许你把你截的图复制到剪切板。这可以通过使用 -c 命令行选项做到。


  1. gnome-screenshot -c

Copy to clipboard

Copy to clipboard

在这个模式下,例如,你可以把复制的图直接粘贴到你的任何一个图片编辑器中(比如 GIMP)。

多显示器情形下的截图

如果有多个显示器连接到你的系统,你想对某一个进行截图,那么你可以使用 --then 命令行选项。需要给这个选项一个显示器设备 ID 的值(需要被截图的显示器的 ID)。


  1. gnome-screenshot --display=[DISPLAY]

例如:


  1. gnome-screenshot --display=VGA-0

在上面的例子中,VAG-0 是我正试图对其进行截图的显示器的 ID。为了找到你想对其进行截图的显示器的 ID,你可以使用下面的命令:


  1. xrandr --query

为了让你明白一些,在我的例子中这个命令产生了下面的输出:


  1. $ xrandr --query
  2. Screen 0: minimum 320 x 200, current 1366 x 768, maximum 8192 x 8192
  3. VGA-0 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 344mm x 194mm
  4. 1366x768 59.8*+
  5. 1024x768 75.1 75.0 60.0 
  6. 832x624 74.6 
  7. 800x600 75.0 60.3 56.2 
  8. 640x480 75.0 60.0 
  9. 720x400 70.1 
  10. HDMI-0 disconnected (normal left inverted right x axis y axis)

自动化屏幕截图过程

正如我们之前讨论的,-a 命令行选项可以帮助我们对屏幕的某一个特定区域进行截图。然而,我们需要用鼠标手动选取这个区域。如果你想的话,你可以使用 gnome-screenshot 来自动化完成这个过程,但是在那种情形下,你将需要使用一个名为 xdotol 的工具,它可以模仿敲打键盘甚至是点击鼠标这些事件。

例如:


  1. (gnome-screenshot -a &); sleep 0.1 && xdotool mousemove 100 100 mousedown 1 mousemove 400 400 mouseup 1

mousemove 子命令自动把鼠标指针定位到明确的 X 坐标和 Y 坐标的位置(上面例子中是 100 和 100)。mousedown 子命令触发一个与点击执行相同操作的事件(因为我们想左击,所以我们使用了参数 1),然而 mouseup 子命令触发一个执行用户释放鼠标按钮的任务的事件。

所以总而言之,上面所示的 xdotool 命令做了一项本来需要使用鼠标手动执行对同一区域进行截图的工作。特别说明,该命令把鼠标指针定位到屏幕上坐标为 100,100 的位置并选择封闭区域,直到指针到达屏幕上坐标为400,400 的位置。所选择的区域随之被 gnome-screenshot 捕获。

这是上述命令的截图:

screenshot of the above command

screenshot of the above command

这是输出的结果:

Screenshot output

Screenshot output

原文发布时间为:2017-04-30

本文来自云栖社区合作伙伴“Linux中国”

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章