标签 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 工具,但是如果你出于某些原因需要重新安装这款软件程序,你可以使用下面的命令来进行安装:

sudo apt-get install gnome-screeshot

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

gnome-screenshot

Gnome-screenshot 用法/特点

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

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

Starting Gnome Screenshot

捕获当前活动窗口

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

gnome-screenshot -w

Capturing current active window

窗口边框

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

gnome-screenshot -wb

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

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

gnome-screenshot -wB

下面是例子的截图:

Window border

添加效果到窗口边框

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

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

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

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

gnome-screenshot –border-effect=shadow

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

Adding effects to window borders

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

对特定区域的截图

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

gnome-screenshot -a

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

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

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

在截图中包含鼠标指针

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

gnome-screenshot -p

这是一个示例截图:

Include mouse pointer in snapshot

延时截图

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

gnome-screenshot –delay=[SECONDS]

例如:

gnome-screenshot --delay=5

示例截图如下:

Delay in taking screenshots

以交互模式运行这个工具

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

gnome-screenshot -i

示例截图如下:

Run the tool in interactive mode

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

直接保存你的截图

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

gnome-screenshot –file=[FILENAME]

例如:

gnome-screenshot --file=ashish

示例截图如下:

Directly save your screenshot

复制到剪切板

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

gnome-screenshot -c

Copy to clipboard

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

多显示器情形下的截图

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

gnome-screenshot --display=[DISPLAY]

例如:

gnome-screenshot --display=VGA-0

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

xrandr --query

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

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

自动化屏幕截图过程

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

例如:

(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 output

想获取更多关于 xdotool 的信息,请到这来

获取帮助

如果你有疑问或者你正面临一个与该命令行的其中某个选项有关的问题,那么你可以使用 --help、-? 或者 -h 选项来获取相关信息。

gnome-screenshot -h

总结

我推荐你至少使用一次这个程序,因为它不仅对初学者来说比较简单,而且还提供功能丰富的高级用法体验。动起手来,尝试一下吧。


via: https://www.howtoforge.com/tutorial/taking-screenshots-in-linux-using-gnome-screenshot/

作者:Himanshu Arora 译者:zhousiyu325 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出

Linux上有着许多不同口味儿的截屏工具,包括桌面环境专用的截屏程序(如: KDE里面的KSnapshot,GNOME里面的gnome-screenshot,Xfce的Screenshooter),或者是通用的截屏程序(如 Shutter)。而Scort("SCReen shOT"的缩写)是最独一无二的截屏工具之一,它是一个命令行截屏工具。虽然它的界面十分简约,但Scrot在功能上和其它专用的基于GUI的屏幕捕获工具一样强大。举个例子,Scrot支持延时截屏,截屏调整品质/大小,命令行传递等功能。如果你是那些热衷命令行的爱好者之一,Scrot应该是你加入兵器库中的又一实用工具。在这个教程中,我将会描述如何在命令行中用Scrot截屏

在Linux中安装Scrot

在 Debian,Ubuntu 或 Linux Mint 上安装Scrot:

$ sudo apt-get install scrot

在 Fedora 上安装Scrot:

$ sudo yum install scrot

要在CentOS上安装Scrot,你可以按照下列步骤从源码编译:

首先在CentOS上启用Repoforge,然后使用下列命令:

$ sudo yum install giblib-devel
$ wget http://linuxbrit.co.uk/downloads/scrot-0.8.tar.gz
$ tar xvfvz scrot-0.8.tar.gz
$ cd scrot-0.8
$ ./configure
$ make
$ sudo make install

用Scrot截屏

在这个教程的下面的部分,我会描述如何通过几种不同方法用Scrot截屏。

1. 截下整个桌面

截取整个桌面十分简单。只需运行Scrot命令,不需要任何参数,然后它会保存一张整个桌面的截屏,以(日期标记).png的文件形式保存在当前文件目录下。

$ scrot

你也可以指定保存目标文件夹和截图文件名。

$ scrot ~/Pictures/my_desktop.png

2. 截取特定窗口或矩形区域

Scrot允许你在桌面选择一个特定的窗口或定义一个矩形区域来截图。使用下列命令来实现:

$ scrot -s

运行这个命令后,继续用你的鼠标单击任意窗口或画出一个矩形,它能够触发对选定窗口/区域的屏幕截取。(LCTT译注,还要使用鼠标,伐快乐)

有时候你选定的区域或窗口可能会被桌面的其它窗口部分遮挡。在这种情况下,你在截屏前需要一点时间来清理那个部分。那正是延迟截屏能够帮到你的,就像下面所描述的那样。

3. 延迟截屏

延迟截取在各种情况下都很实用。就在截图前,你可能想要移动一下窗口,激活一下菜单,或是触发特定时间(如通知)等等。 使用“-d N”参数,我们可以将截屏进程延迟N秒。

$ scrot -s -d 5

4. 调整截屏质量

你可以在1到100的范围内调整截取的图像质量(数字越大质量越高)。默认质量设置为75。

$ scrot -q 50

5. 调整截屏尺寸

你可以在1到100的范围内调整截取的图像尺寸(数字越大尺寸越大)。减小截屏的尺寸到原图的10%:

$ scrot -t 10

6. 将截取的截屏传递给其它命令

Scrot允许你发送保存的截屏图像给任意一个命令作为它们的输入。这个选项在你想对截屏图像做任意后期处理的时候十分实用。截屏的文件名/路径跟随于“$f”字符串之后。

$ scrot -e 'mv $f ~/screenshots'

via: http://xmodulo.com/2014/05/take-screenshot-command-line-linux.html

译者:alim0x 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

  日常工作中,我们经常需要截取屏幕状态来给其他人看。一般情况下,我们能最直接想到的就是使用键盘上的“Print Screen SysRq”键来直接截取屏幕到内存中,然后再在其他工具中将内存中的图粘贴出来。不过在 Ubuntu 下,当你打开一个程序的下拉菜单的时候,你会发现在 Ubuntu 下截屏是有问题的。目前这个问题还没有得到很好的解决,那么我们怎么办呢。在一番搜索查询后,我发现了一个通过命令行就可以实现截屏的程序,gnome-screenshot (在 Gnome 桌面环境下) 可以非常方便的截取我们需要的屏幕,可以截取整个屏幕,当前窗口,或者我们制定的区域。

  下面我们就挨个来测试测试这些功能。这里一共有六个示例,可以让大家了解这个命令和工具:

1、捕捉整个屏幕

  捕捉整个屏幕应该是非常普遍的需求了,gnome-screenshot 捕捉整个屏幕只需要运行下面的命令就可以:

$ gnome-screenshot

  上面就是我的当前整个桌面了。

2、通过 -w 参数来捕捉当前 Shell 窗口

  上面的例子里我们捕捉了整个屏幕的状态,如果我们只想捕捉当前活动的 Shell 窗口我们可以在命令上添加 -w 参数来做到:

$ gnome-screenshot -w

https://img.linux.net.cn/data/attachment/album/201307/25/2252135lhl95mj5hsy86y9.png

  您可以看到,上面的截图只有当前运行的 Shell 窗口。

3、使用 -a 参数来捕捉指定区域

  捕捉指定区域应该是比整个桌面和指定窗口使用频率更高的需求了。

$ gnome-screenshot -a

  运行了这个命令以后,您应该看到您的鼠标指针已经发生了变化,您只需要移动鼠标到您需要的区域单击然后拖动出一个区域来,松开鼠标的时候,您将得到一个区域的截图。

https://img.linux.net.cn/data/attachment/album/201307/25/225214iki8lsdl00kmuick.png

  您可以看到上面的这个只有一点点高的小图片。

4、使用 -B 参数来去除窗口的边框

  在第二个方法中,虽然我们截取了当前活动的窗口,不过它是连带着窗口的名称状态条一起截取的,如果我们需要截取不带名称状态条的图形,那么我们就需要在 -w 参数后面继续添加 -B 参数了。

$ gnome-screenshot -w -B

https://img.linux.net.cn/data/attachment/album/201307/25/2252158quipiwtxn68dznz.png

  怎么样,看起来是不是更清爽一些。

5、使用 -d 参数来延迟截取功能从而截取其他活动窗口

  前面我们使用 -w 参数来捕获当前活跃的 Shell 窗口,不过我们不能只截取 Shell 窗口而视其他窗口的需求而不顾。Shell 只是我们的使用工具,我们还需要其他窗口的截图来完成我们的工作,我们也不能总是所有截图里都带着 Shell 窗口。-d 参数就是来满足我们这个需求的。-d 参数后面我们继续添加一个数字,执行带这些参数的命令后,截取屏幕功能将在你指定的数字的秒数后来实现。这样你就有充足的时间来缩小、关闭你不需要的窗口或者切换到你需要的窗口。

$ gnome-screenshot -d 5

  上面的命令将在 5 秒后截取桌面,执行后,你就可以在五秒钟的时间内来切换到你需要截取的窗口,然后等待 5 秒钟的到来就好了。

6、使用 -e 参数来给截图添加效果

  gnome-screenshot 工具可以给截图添加一个外边框和阴影,以便我们在其他地方使用截图的时候,这些图都具有一个明显的边框。-e 参数后面根据需要添加“border”或者“shadow”下面是一个添加边框的命令示例。

  注:我使用 -w 参数来捕捉当前窗口,-B 参数来去除窗口名称状态条,同时给它添加一个边框:

$ gnome-screenshot -wB -e border

https://img.linux.net.cn/data/attachment/album/201307/25/225218c1s251ckk5lee5qk.png

  大家赶紧试验试验这些命令参数吧,看看他们都能怎么样组合,当然了这里是命令行的使用模式,其实我们还可以在 GUI 下来使用,您只需要在命令上添加 -i 参数就可以看到具体是怎么样的了。

原文:http://mylinuxbook.com/gnome-screenshot/

补充

谢谢 @gad壹米 的提示,可以将上述的命令设置到快捷键上:

设置中 “键盘 -> 快捷键 ->自定义快捷键" 新增一个自定义的,命令设为 gnome-screenshot -a ,然后绑定一个快捷键如 ctrl+shift+a。就能随意截取部分屏幕了