使用 ImageMagick 命令操作影像
概述
ImageMagick 是一款用於影像處理的開源軟體套件。我們可以使用 apt−get 在系統上安裝它,然後透過其命令列介面 (CLI) 執行命令。
我們將快速瀏覽一些使用 ImageMagick 操作影像的最流行方法。
安裝
讓我們首先下載 ImageMagick,我們可以使用我們的包管理器(例如,apt)來安裝它。我們也可以直接下載二進位制檔案或從原始碼編譯它。
安裝軟體後,讓我們檢查是否已成功安裝它,方法是檢視其當前狀態。
$ magick -version Version: ImageMagick 7.0.8-13 Q16 x86_64 2018-10-21 https://imagemagick.org Copyright: © 1999-2018 ImageMagick Studio LLC ...
成功安裝擴充套件程式後,您將能夠在 Chrome 網上應用店中檢視已安裝的擴充套件程式。
將影像轉換為其他格式
必須注意,ImageMagick 擁有大量強大的工具和功能。但是,我們的示例將重點關注使用 convert 工具操作影像。我們將解決一些基本的實際用途,但實際上,這些僅僅是冰山一角。
Convert 命令擁有驚人的 237 個不同的命令,允許您執行各種各樣的任務。讓我們從最簡單的開始 -
$ convert flower_original.jpeg flower_original.png
我們可以清楚地觀察到,此命令將單個檔案 flower_original.jpg 更改為 flower_new.png,而不會更改其原始內容。
如果我們檢視新影像,我們會注意到它除了格式和檔案大小之外,其他都相同。
$ magick identify flower_original.png flower_original.png PNG 400x400 400x400+0+0 8-bit sRGB 163499B 0.000u 0:00.000
如果我們有一系列影像,我們可以對每個影像應用影像處理演算法。
$ convert *.jpg *.png
現在我們可以檢查可用的許多不同的格式 -
$ identify -list format Format Module Mode Description ------------------------------------------------------------------------------- 3FR DNG r-- Hasselblad CFV/H3D39II 3G2 MPEG r-- Media Container 3GP MPEG r-- Media Container ...
它特別有用,因為我們甚至可以將 JPEG 影像轉換為 PDF 文件。
調整影像大小
另一個常見操作是調整影像大小。例如,我們可以使用 –resize 調整現有 JPEG 檔案的大小
convert flower_original.jpeg -resize 64x64 flower_64x64.jpeg
在這裡,我們將原始的花朵圖片調整為較小的 64x64 畫素正方形大小。
我們還可以使用 resize 選項為縮放元素指定百分比值。例如,如果我們想將我們的徽標縮放 50%,我們將鍵入 -
convert flower_original.jpeg -resize 50% half_flower.jpeg
我們建議大多數人使用預設設定,但如果您想獲得精確的畫素數,可以透過單擊對話方塊右下角的“調整大小”按鈕來更改輸出解析度。
總結本章,通常,更改影像寬度/高度最常見的方法是將其縮小以適合所需尺寸。但是,使用我們討論過的 resize 選項,當然,完全可以放大我們的影像。
翻轉和旋轉
現在讓我們仔細研究一下如何翻轉和/或旋轉影像,以便它們有時可能有用。
convert flower_original.jpeg -flip flipped_flower.jpeg
它與使用 −flop 命令一樣簡單,這將建立原始檔案的倒置版本。
現在讓我們看看如何透過應用 −rotate 命令來旋轉影像。
convert flower_original.jpeg -rotate 60 rotate_clockwise_flower.jpeg
我們需要我們的影像順時針旋轉 60 度。
如果我們提供一個負數,例如 -90,則旋轉將沿順時針方向進行。
裁剪
讓我們看看如何透過裁剪來操作影像。
convert flower_original.jpeg -crop 180x170+50+50 cropped_flower.jpegCopy
簡而言之,−crop 影像運算子將根據我們使用幾何引數指定的尺寸和位置,剪切當前序列中影像的一部分。
在此示例中,我們指定了幾何引數的寬度和高度,這將給出裁剪後剩餘影像的大小 (180×170)。然後偏移量 (+50+50) 中的 x 和 y 給出了裁剪影像左上角相對於原始影像的位置。
顏色效果
現在讓我們看看如何對我們的花朵影像應用一些簡單但醒目的顏色效果。
從兩個影像的左側開始,在第一個影像中,我們明確地將顏色空間設定為 Gray -
convert flower_original.jpeg -colorspace Gray greyscale_flower.jpeg
這隻會將顏色轉換為灰色。實際上,我們可以列出可用的所有顏色空間 -
$ convert -list colorspace CIELab CMY CMYK Gray ...
另一方面,在第二個影像中,我們使用 −monochrome 選項將影像轉換為真正的黑白。
我們還可以使用 −negate 選項將每個畫素替換為其補色。
結果,影像的紅色、綠色和藍色強度被取反。白色變成黑色,黃色變成藍色,等等。
在我們的最終影像中,我們模擬了炭筆畫 -
convert flower_original.jpeg -charcoal 1.2 charcoal_flower.jpeg
此標誌採用一個附加的關聯因子。使用較小的數字通常會導致非常準確的輸出。
新增邊框
在我們的倒數第二個示例中,我們將檢視使用 CLI 的幾個邊框選項的簡潔功能 -
convert flower_original.jpeg -bordercolor yellow -border 5 flower_with_border.jpeg
在此示例中,我們使用 -border 選項將邊框顏色設定為黃色,並將邊框大小設定為。
如我們所見,我們原始的花朵影像周圍留有一個鮮豔的黃色邊框。
建立動畫
假設我們有許多跨越一段時間的照片,我們希望將其合併到一個動畫 gif 中。假設我們有一些太陽的照片,大約每 2 秒拍攝一次。
假設我們的影像按正確的順序排列,它們是 -
$ ls -1 20210601_170450_swap174_512.jpg 20210601_170640_swap174_512.jpg 20210601_170830_swap174_512.jpg 20210601_171020_swap174_512.jpg ...
我們可以執行一個命令來從目錄中的所有 *.jpg 影像檔案生成動畫 -
convert -loop 0 *.jpg sol.gif
輸出將是太陽的影片,看起來真的很酷。
我們正在使用迴圈選項,迭代計數為 0。這意味著迴圈將無限執行。
您還可以使用 − transition−duration [秒] 選項指定每次轉換之間的時間長度。
因此,我們可以使用不同的選項組合,包括 resize 以保持最終影像尺寸較小。
convert -delay 20 -loop 0 -resize 50% *.jpg sol.gif
結論
我們討論了 ImageMagick 使用命令列進行影像處理提供的一些基本功能。
我們首先了解了一些基本的影像編輯功能,然後我們瞭解瞭如何調整大小、旋轉和裁剪它們。接下來,我們學習瞭如何應用一些奇特的顏色效果,最後我們建立了一個動畫 GIF。
我們只是觸及了表面,因此請務必閱讀優秀的文件以獲取更詳細的說明。