使用 Sixel 圖形格式在終端中顯示縮圖
不久前,我們討論了 Fim,這是一個輕量級的命令列影象檢視器應用程式,用於從命令列顯示各種型別的影象,如 bmp、gif、jpeg 和 png 等。今天,我偶然發現了一個名為 lsix的類似工具。它類似於類 Unix 系統中的 ls命令,但僅適用於影象。lsix 是一個簡單的命令列實用程式,旨在使用 Sixel 圖形格式在終端中顯示縮圖。對於那些想知道的人來說,Sixel 是六畫素six pixels的縮寫,是一種點陣圖圖形格式。它使用 ImageMagick,因此幾乎所有 imagemagick 支援的檔案格式都可以正常工作。
功能
關於 lsix 的功能,我們可以列出如下:
- 自動檢測你的終端是否支援 Sixel 圖形格式。如果你的終端不支援 Sixel,它會通知你啟用它。
- 自動檢測終端背景顏色。它使用終端轉義序列來試圖找出終端應用程式的前景色和背景色,並清楚地顯示縮圖。
- 如果目錄中有更多影象(通常大於 21 個),lsix 將一次顯示這些影象,因此你無需等待建立整個蒙太奇影象(LCTT 譯註:拼貼圖)。
- 可以通過 SSH 工作,因此你可以輕鬆操作儲存在遠端 Web 伺服器上的影象。
- 它支援非點陣圖圖形,例如 .svg、.eps、.pdf、.xcf 等。
- 用 Bash 編寫,適用於幾乎所有 Linux 發行版。
安裝 lsix
由於 lsix 使用 ImageMagick,請確保已安裝它。它在大多數 Linux 發行版的預設軟體庫中都可用。 例如,在 Arch Linux 及其變體如 Antergos、Manjaro Linux 上,可以使用以下命令安裝ImageMagick:
$ sudo pacman -S imagemagick
在 Debian、Ubuntu、Linux Mint:
$ sudo apt-get install imagemagick
lsix 並不需要安裝,因為它只是一個 Bash 指令碼。只需要下載它並移動到你的 $PATH 中。就這麼簡單。
從該專案的 GitHub 主頁下載最新的 lsix 版本。我使用如下命令下載 lsix 歸檔包:
$ wget https://github.com/hackerb9/lsix/archive/master.zip
提取下載的 zip 檔案:
$ unzip master.zip
此命令將所有內容提取到名為 lsix-master 的資料夾中。將 lsix 二進位制檔案從此目錄複製到 $PATH 中,例如 /usr/local/bin/。
$ sudo cp lsix-master/lsix /usr/local/bin/
最後,使 lsix 二進位制檔案可執行:
$ sudo chmod +x /usr/local/bin/lsix
如此,現在是在終端本身顯示縮圖的時候了。
在開始使用 lsix 之前,請確保你的終端支援 Sixel 圖形格式。
開發人員在 vt340 模擬模式下的 Xterm 上開發了 lsix。 然而,他聲稱 lsix 應該適用於任何Sixel 相容終端。
Xterm 支援 Sixel 圖形格式,但預設情況下不啟用。
你可以從另外一個終端使用命令來啟動一個啟用了 Sixel 模式的 Xterm:
$ xterm -ti vt340
或者,你可以使 vt340 成為 Xterm 的預設終端型別,如下所述。
編輯 .Xresources 檔案(如果它不可用,只需建立它):
$ vi .Xresources
新增如下行:
xterm*decTerminalID : vt340
按下 ESC 並鍵入 :wq 以儲存並關閉該檔案。
最後,執行如下命令來應用改變:
$ xrdb -merge .Xresources
現在,每次啟動 Xterm 就會預設啟用 Sixel 圖形支援。
在終端中顯示縮圖
啟動 Xterm(不要忘記以 vt340 模式啟動它)。以下是 Xterm 在我的系統中的樣子。
就像我已經說過的那樣,lsix 非常簡單實用。它沒有任何命令列選項或配置檔案。你所要做的就是將檔案的路徑作為引數傳遞,如下所示。
$ lsix ostechnix/logo.png
如果在沒有路徑的情況下執行它,它將顯示在當前工作目錄中的縮圖影象。我在名為 ostechnix 的目錄中有幾個檔案。
要顯示此目錄中的縮圖,只需執行:
$ lsix
看到了嗎?所有檔案的縮圖都顯示在終端裡。
如果使用 ls命令,則只能看到檔名,而不是縮圖。
你還可以使用萬用字元顯示特定型別的指定影象或一組影象。
例如,要顯示單個影象,只需提及影象的完整路徑,如下所示。
$ lsix girl.jpg
要顯示特定型別的所有影象,例如 PNG,請使用如下所示的萬用字元。
$ lsix *.png
對於 JEPG 型別,命令如下:
$ lsix *jpg
縮圖的顯示質量非常好。我以為 lsix 會顯示模糊的縮圖。但我錯了,縮圖清晰可見,就像在圖形影象檢視器上一樣。
而且,這一切都是唾手可得。如你所見,lsix 與 ls 命令非常相似,但它僅用於顯示縮圖。如果你在工作中處理很多影象,lsix 可能會非常方便。試一試,請在下面的評論部分告訴我們你對此實用程式的看法。如果你知道任何類似的工具,也請提出建議。我將檢查並更新本指南。
更多好東西即將到來。敬請關