标签 scrot 下的文章

最近,我们介绍过 gnome-screenshot 工具,这是一个很优秀的屏幕抓取工具。但如果你想找一个在命令行运行的更好用的截屏工具,你一定要试试 Scrot。这个工具有一些 gnome-screenshot 没有的独特功能。在这篇文章里,我们会通过简单易懂的例子来详细介绍 Scrot。

请注意一下,这篇文章里的所有例子都在 Ubuntu 16.04 LTS 上测试过,我们用的 scrot 版本是 0.8。

关于 Scrot

ScrotSCReenshOT) 是一个屏幕抓取工具,使用 imlib2 库来获取和保存图片。由 Tom Gilbert 用 C 语言开发完成,通过 BSD 协议授权。

安装 Scrot

scort 工具可能在你的 Ubuntu 系统里预装了,不过如果没有的话,你可以用下面的命令安装:

sudo apt-get install scrot

安装完成后,你可以通过下面的命令来使用:

scrot [options] [filename]

注意:方括号里的参数是可选的。

Scrot 的使用和特点

在这个小节里,我们会介绍如何使用 Scrot 工具,以及它的所有功能。

如果不带任何选项执行命令,它会抓取整个屏幕。

使用 Scrot

默认情况下,抓取的截图会用带时间戳的文件名保存到当前目录下,不过你也可以在运行命令时指定截图文件名。比如:

scrot [image-name].png

获取程序版本

你想的话,可以用 -v 选项来查看 scrot 的版本。

scrot -v

这是例子:

获取 scrot 版本

抓取当前窗口

这个工具可以限制抓取当前的焦点窗口。这个功能可以通过 -u 选项打开。

scrot -u

例如,这是我在命令行执行上边命令时的桌面:

用 scrot 截取窗口

这是另一张用 scrot 抓取的截图:

用 scrot 抓取的图片

抓取选定窗口

这个工具还可以让你抓取任意用鼠标点击的窗口。这个功能可以用 -s 选项打开。

scrot -s

例如,在下面的截图里你可以看到,我有两个互相重叠的终端窗口。我在上层的窗口里执行上面的命令。

选择窗口

现在假如我想抓取下层的终端窗口。这样我只要在执行命令后点击窗口就可以了 —— 在你用鼠标点击之前,命令的执行不会结束。

这是我点击了下层终端窗口后的截图:

窗口截图

注意:你可以在上面的截图里看到,下层终端窗口的整个显示区域都被抓去下来了,甚至包括了上层窗口的部分叠加内容。

在截屏时包含窗口边框

我们之前介绍的 -u 选项在截屏时不会包含窗口边框。不过,需要的话你也可以在截屏时包含窗口边框。这个功能可以通过 -b 选项打开(当然要和 -u 选项一起)。

scrot -ub

下面是示例截图:

截屏时包含窗口边框

注意:截屏时包含窗口边框同时也会增加一点额外的背景。

延时截屏

你可以在开始截屏时增加一点延时。需要在 --delay-d 选项后设定一个时间值参数。

scrot --delay [NUM]

scrot --delay 5

例如:

延时截屏

在这例子里,scrot 会等待 5 秒再截屏。

截屏前倒数

这个工具也可以在你使用延时功能后显示一个倒计时。这个功能可以通过 -c 选项打开。

scrot –delay [NUM] -c

scrot -d 5 -c

下面是示例截图:

延时截屏示例

图片质量

你可以使用这个工具来调整截图的图片质量,范围是 1-100 之间。较大的值意味着更大的文件大小以及更低的压缩率。默认值是 75,不过最终效果根据选择的文件类型也会有一些差异。

这个功能可以通过 --quality-q 选项打开,但是你必须提供一个 1 - 100 之间的数值作为参数。

scrot –quality [NUM]

scrot –quality 10

下面是示例截图:

截屏质量

你可以看到,-q 选项的参数更靠近 1 让图片质量下降了很多。

生成缩略图

scort 工具还可以生成截屏的缩略图。这个功能可以通过 --thumb 选项打开。这个选项也需要一个 NUM 数值作为参数,基本上是指定原图大小的百分比。

scrot --thumb NUM

scrot --thumb 50

注意:加上 --thumb 选项也会同时保存原始截图文件。

例如,下面是我测试的原始截图:

原始截图

下面是保存的缩略图:

截图缩略图

拼接多显示器截屏

如果你的电脑接了多个显示设备,你可以用 scort 抓取并拼接这些显示设备的截图。这个功能可以通过 -m 选项打开。

scrot -m

下面是示例截图:

拼接截屏

在保存截图后执行操作

使用这个工具,你可以在保存截图后执行各种操作 —— 例如,用像 gThumb 这样的图片编辑器打开截图。这个功能可以通过 -e 选项打开。下面是例子:

scrot abc.png -e 'gthumb abc.png'

这个命令里的 gthumb 是一个图片编辑器,上面的命令在执行后会自动打开。

下面是命令的截图:

截屏后执行命令

这个是上面命令执行后的效果:

示例截图

你可以看到 scrot 抓取了屏幕截图,然后再启动了 gThumb 图片编辑器打开刚才保存的截图图片。

如果你截图时没有指定文件名,截图将会用带有时间戳的文件名保存到当前目录 —— 这是 scrot 的默认设定,我们前面已经说过。

下面是一个使用默认名字并且加上 -e 选项来截图的例子:

scrot -e 'gthumb $n'

scrot 截屏后运行 gthumb

有个地方要注意的是 $n 是一个特殊字符串,用来获取当前截图的文件名。关于特殊字符串的更多细节,请继续看下个小节。

特殊字符串

scrot 的 -e(或 --exec)选项和文件名参数可以使用格式说明符。有两种类型格式。第一种是以 % 加字母组成,用来表示日期和时间,第二种以 $ 开头,scrot 内部使用。

下面介绍几个 --exec 和文件名参数接受的说明符。

$f – 让你可以使用截图的全路径(包括文件名)。

例如:

scrot ashu.jpg -e ‘mv $f ~/Pictures/Scrot/ashish/’

下面是示例截图:

示例

如果你没有指定文件名,scrot 默认会用日期格式的文件名保存截图。这个是 scrot 的默认文件名格式:%yy-%mm-%dd-%hhmmss_$wx$h_scrot.png

$n – 提供截图文件名。下面是示例截图:

scrot $n variable

$s – 获取截图的文件大小。这个功能可以像下面这样使用。

scrot abc.jpg -e ‘echo $s’

下面是示例截图:

scrot $s 变量

类似的,你也可以使用其他格式字符串 $p$w$h$t$$ 以及 \n 来分别获取图片像素大小、图像宽度、图像高度、图像格式、输入 $ 字符、以及换行。你可以像上面介绍的 $s 格式那样使用这些字符串。

结论

这个应用能轻松地安装在 Ubuntu 系统上,对初学者比较友好。scrot 也提供了一些高级功能,比如支持格式化字符串,方便专业用户用脚本处理。当然,如果你想用起来的话有一点轻微的学习曲线。


via: https://www.howtoforge.com/tutorial/how-to-take-screenshots-in-linux-with-scrot/

作者:Himanshu Arora 译者:zpl1025 校对:wxy

本文由 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中国 荣誉推出