如何在Linux系統(tǒng)里用Scrot截屏
最近,我們介紹過 gnome-screenshot 工具,這是一個(gè)很優(yōu)秀的屏幕抓取工具。但如果你想找一個(gè)在命令行運(yùn)行的更好用的截屏工具,你一定要試試 Scrot。這個(gè)工具有一些 gnome-screenshot 沒有的獨(dú)特功能。在這篇文章里,我們會(huì)通過簡(jiǎn)單易懂的例子來詳細(xì)介紹 Scrot。
請(qǐng)注意一下,這篇文章里的所有例子都在 Ubuntu 16.04 LTS 上測(cè)試過,我們用的 scrot 版本是 0.8。
關(guān)于 Scrot
Scrot (SCReenshOT) 是一個(gè)屏幕抓取工具,使用 imlib2 庫(kù)來獲取和保存圖片。由 Tom Gilbert 用 C 語(yǔ)言開發(fā)完成,通過 BSD 協(xié)議授權(quán)。
安裝 Scrot
scort 工具可能在你的 Ubuntu 系統(tǒng)里預(yù)裝了,不過如果沒有的話,你可以用下面的命令安裝:
- sudo apt-get install scrot
安裝完成后,你可以通過下面的命令來使用:
- scrot [options] [filename]
注意:方括號(hào)里的參數(shù)是可選的。
Scrot 的使用和特點(diǎn)
在這個(gè)小節(jié)里,我們會(huì)介紹如何使用 Scrot 工具,以及它的所有功能。
如果不帶任何選項(xiàng)執(zhí)行命令,它會(huì)抓取整個(gè)屏幕。
使用 Scrot
默認(rèn)情況下,抓取的截圖會(huì)用帶時(shí)間戳的文件名保存到當(dāng)前目錄下,不過你也可以在運(yùn)行命令時(shí)指定截圖文件名。比如:
- scrot [image-name].png
獲取程序版本
你想的話,可以用 -v 選項(xiàng)來查看 scrot 的版本
- scrot -v
這是例子:
獲取 scrot 版本
抓取當(dāng)前窗口
這個(gè)工具可以限制抓取當(dāng)前的焦點(diǎn)窗口。這個(gè)功能可以通過 -u 選項(xiàng)打開。
- scrot -u
例如,這是我在命令行執(zhí)行上邊命令時(shí)的桌面:
用 scrot 截取窗口
這是另一張用 scrot 抓取的截圖:
用 scrot 抓取的圖片
抓取選定窗口
這個(gè)工具還可以讓你抓取任意用鼠標(biāo)點(diǎn)擊的窗口。這個(gè)功能可以用 -s 選項(xiàng)打開。
- scrot -s
例如,在下面的截圖里你可以看到,我有兩個(gè)互相重疊的終端窗口。我在上層的窗口里執(zhí)行上面的命令。
選擇窗口
現(xiàn)在假如我想抓取下層的終端窗口。這樣我只要在執(zhí)行命令后點(diǎn)擊窗口就可以了 —— 在你用鼠標(biāo)點(diǎn)擊之前,命令的執(zhí)行不會(huì)結(jié)束。
這是我點(diǎn)擊了下層終端窗口后的截圖:
窗口截圖
注意:你可以在上面的截圖里看到,下層終端窗口的整個(gè)顯示區(qū)域都被抓去下來了,甚至包括了上層窗口的部分疊加內(nèi)容。
在截屏?xí)r包含窗口邊框
- scrot -ub
下面是示例截圖:
截屏?xí)r包含窗口邊框
注意:截屏?xí)r包含窗口邊框同時(shí)也會(huì)增加一點(diǎn)額外的背景。
延時(shí)截屏
你可以在開始截屏?xí)r增加一點(diǎn)延時(shí)。需要在 --delay 或 -d 選項(xiàng)后設(shè)定一個(gè)時(shí)間值參數(shù)。
- scrot --delay [NUM]
- scrot --delay 5
例如:
延時(shí)截屏
在這例子里,scrot 會(huì)等待 5 秒再截屏。
截屏前倒數(shù)
這個(gè)工具也可以在你使用延時(shí)功能后顯示一個(gè)倒計(jì)時(shí)。這個(gè)功能可以通過 -c 選項(xiàng)打開。
- scrot –delay [NUM] -c
- scrot -d 5 -c
下面是示例截圖:
延時(shí)截屏示例
圖片質(zhì)量
你可以使用這個(gè)工具來調(diào)整截圖的圖片質(zhì)量,范圍是 1-100 之間。較大的值意味著更大的文件大小以及更低的壓縮率。默認(rèn)值是 75,不過最終效果根據(jù)選擇的文件類型也會(huì)有一些差異。
這個(gè)功能可以通過 --quality 或 -q 選項(xiàng)打開,但是你必須提供一個(gè) 1 - 100 之間的數(shù)值作為參數(shù)。
- scrot –quality [NUM]
- scrot –quality 10
下面是示例截圖:
截屏質(zhì)量
你可以看到,-q 選項(xiàng)的參數(shù)更靠近 1 讓圖片質(zhì)量下降了很多。
生成縮略圖
scort 工具還可以生成截屏的縮略圖。這個(gè)功能可以通過 --thumb 選項(xiàng)打開。這個(gè)選項(xiàng)也需要一個(gè) NUM 數(shù)值作為參數(shù),基本上是指定原圖大小的百分比。
- scrot --thumb NUM
- scrot --thumb 50
注意:加上 --thumb 選項(xiàng)也會(huì)同時(shí)保存原始截圖文件。
例如,下面是我測(cè)試的原始截圖:
原始截圖
下面是保存的縮略圖:
截圖縮略圖
拼接多顯示器截屏
如果你的電腦接了多個(gè)顯示設(shè)備,你可以用 scort 抓取并拼接這些顯示設(shè)備的截圖。這個(gè)功能可以通過 -m 選項(xiàng)打開。
- scrot -m
下面是示例截圖:
拼接截屏
在保存截圖后執(zhí)行操作
使用這個(gè)工具,你可以在保存截圖后執(zhí)行各種操作 —— 例如,用像 gThumb 這樣的圖片編輯器打開截圖。這個(gè)功能可以通過 -e 選項(xiàng)打開。下面是例子:
- scrot abc.png -e 'gthumb abc.png'
這個(gè)命令里的 gthumb 是一個(gè)圖片編輯器,上面的命令在執(zhí)行后會(huì)自動(dòng)打開。
下面是命令的截圖:
截屏后執(zhí)行命令
這個(gè)是上面命令執(zhí)行后的效果:
示例截圖
你可以看到 scrot 抓取了屏幕截圖,然后再啟動(dòng)了 gThumb 圖片編輯器打開剛才保存的截圖圖片。
如果你截圖時(shí)沒有指定文件名,截圖將會(huì)用帶有時(shí)間戳的文件名保存到當(dāng)前目錄 —— 這是 scrot 的默認(rèn)設(shè)定,我們前面已經(jīng)說過。
下面是一個(gè)使用默認(rèn)名字并且加上 -e 選項(xiàng)來截圖的例子:
- scrot -e 'gthumb $n'
scrot 截屏后運(yùn)行 gthumb
有個(gè)地方要注意的是 $n 是一個(gè)特殊字符串,用來獲取當(dāng)前截圖的文件名。關(guān)于特殊字符串的更多細(xì)節(jié),請(qǐng)繼續(xù)看下個(gè)小節(jié)。
特殊字符串
scrot 的 -e(或 --exec)選項(xiàng)和文件名參數(shù)可以使用格式說明符。有兩種類型格式。第一種是以 % 加字母組成,用來表示日期和時(shí)間,第二種以 $ 開頭,scrot 內(nèi)部使用。
下面介紹幾個(gè) --exec 和文件名參數(shù)接受的說明符。
$f – 讓你可以使用截圖的全路徑(包括文件名)。
例如:
- scrot ashu.jpg -e ‘mv $f ~/Pictures/Scrot/ashish/’
下面是示例截圖:
示例
如果你沒有指定文件名,scrot 默認(rèn)會(huì)用日期格式的文件名保存截圖。這個(gè)是 scrot 的默認(rèn)文件名格式:%yy-%mm-%dd-%hhmmss_$wx$h_scrot.png。
$n – 提供截圖文件名。下面是示例截圖:
scrot $n variable
$s – 獲取截圖的文件大小。這個(gè)功能可以像下面這樣使用。
- scrot abc.jpg -e ‘echo $s’
下面是示例截圖:
scrot $s 變量
類似的,你也可以使用其他格式字符串 $p、$w、 $h、$t、$$ 以及 \n 來分別獲取圖片像素大小、圖像寬度、圖像高度、圖像格式、輸入 $ 字符、以及換行。你可以像上面介紹的 $s 格式那樣使用這些字符串。
結(jié)論
這個(gè)應(yīng)用能輕松地安裝在 Ubuntu 系統(tǒng)上,對(duì)初學(xué)者比較友好。scrot 也提供了一些高級(jí)功能,比如支持格式化字符串,方便專業(yè)用戶用腳本處理。當(dāng)然,如果你想用起來的話有一點(diǎn)輕微的學(xué)習(xí)曲線。