使用 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。

我們只是觸及了表面,因此請務必閱讀優秀的文件以獲取更詳細的說明。

更新於:2022-12-26

330 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告