在 Linux 中使用ImageMagick命令列操作影像檔案

roc_guo發表於2021-12-23
8安裝ImageMagick

ImageMagick 可以安裝在 、Mac OS X、Windows系統中。下載連結為:

http://www.imagemagick.org/script/download.php

下面在Centos8中安裝ImageMagick:

[root@localhost ~]# wget https://download.imagemagick.org/ImageMagick/download/linux/CentOS/x86_64/ImageMagick-7.1.0-17.x86_64.rpm
[root@localhost ~]# wget https://download.imagemagick.org/ImageMagick/download/linux/CentOS/x86_64/ImageMagick-libs-7.1.0-17.x86_64.rpm

下載到本地之後,使用yum命令安裝這兩個包:

[root@localhost ~]# yum localinstall ImageMagick-*

在 Linux 中使用ImageMagick命令列操作影像檔案在 Linux 中使用ImageMagick命令列操作影像檔案

按影像型別轉換檔案

使用 convert 命令將影像從一種格式轉換為另一種格式非常容易。可以使用下面命令來轉換:

[root@localhost data]# convert penguins.jpg penguins.png

penguins.png 影像應該與原始 penguins.jpg 檔案看起來相同,但該檔案將具有指定的副檔名並且大小不同。convert 命令將使用你提供的檔名來確定最終想要的檔案型別並相應地修改影像。

如果懷疑轉換是否有問題,你可以隨時使用  od 命令檢查每個檔案的開頭。

[root@localhost data]# od -bc penguins.jpg |head -6
0000000 377 330 377 340 000 020 112 106 111 106 000 001 001 000 000 001
        377 330 377 340  \0 020   J   F   I   F  \0 001 001  \0  \0 001
0000020 000 001 000 000 377 333 000 103 000 002 001 001 001 001 001 002
         \0 001  \0  \0 377 333  \0   C  \0 002 001 001 001 001 001 002
0000040 001 001 001 002 002 002 002 002 004 003 002 002 002 002 005 004
        001 001 001 002 002 002 002 002 004 003 002 002 002 002 005 004
[root@localhost data]# 
[root@localhost data]# 
[root@localhost data]# od -bc penguins.png |head -6
0000000 211 120 116 107 015 012 032 012 000 000 000 015 111 110 104 122
        211   P   N   G  \r  \n 032  \n  \0  \0  \0  \r   I   H   D   R
0000020 000 000 001 016 000 000 000 375 010 002 000 000 000 302 242 016
         \0  \0 001 016  \0  \0  \0 375  \b 002  \0  \0  \0 302 242 016
0000040 361 000 000 000 004 147 101 115 101 000 000 261 217 013 374 141
        361  \0  \0  \0 004   g   A   M   A  \0  \0 261 217  \v 374   a

在 Linux 中使用ImageMagick命令列操作影像檔案在 Linux 中使用ImageMagick命令列操作影像檔案
第一個檔案中顯示的“JFIF”字串和另一個檔案中顯示的“PNG”驗證操作是否按指示執行。這些是用於識別這兩種檔案格式的內部程式碼。

重新格式化大量檔案

如果您想使用 convert 命令從數百個 .png 檔案生成數百個 .jpg 檔案,可以使用下面的 。根據要轉換的檔案數量,完成任務可能只需要幾秒鐘或幾分鐘的時間。

[root@localhost test]# vim batch_convert.sh 
#!/bin/bash
for file in `ls *.jpg`
do      
        newfile=`echo $file | sed 's/jpg/png/'`
        convert $file $newfile
done

在 Linux 中使用ImageMagick命令列操作影像檔案在 Linux 中使用ImageMagick命令列操作影像檔案
轉換之前,下面的照片格式是jpg:
在 Linux 中使用ImageMagick命令列操作影像檔案在 Linux 中使用ImageMagick命令列操作影像檔案
下面執行該 來修改圖片格式:

[root@localhost test]# ./batch_convert.sh

在 Linux 中使用ImageMagick命令列操作影像檔案在 Linux 中使用ImageMagick命令列操作影像檔案

旋轉和翻轉

要旋轉檔案,需要在convert命令中輸入要旋轉多少度。下面兩個命令中的第一個將按順時針方向將影像旋轉 45 度。第二個使用 -flip 選項將其垂直翻轉。

[root@localhost data]# convert penguins.jpg -rotate 45 penguins_45.png
[root@localhost data]# convert penguins.jpg -flip penguins_flip.png

在 Linux 中使用ImageMagick命令列操作影像檔案在 Linux 中使用ImageMagick命令列操作影像檔案
垂直旋轉和180度旋轉是不一樣的,可以看下圖:
在 Linux 中使用ImageMagick命令列操作影像檔案在 Linux 中使用ImageMagick命令列操作影像檔案

附加圖片

在此命令中,我們將兩個影像附加在一起以形成單個影像。

[root@localhost data]# convert penguins.jpg penguins_flip.png -append append_pengius.png

在 Linux 中使用ImageMagick命令列操作影像檔案在 Linux 中使用ImageMagick命令列操作影像檔案
使用 -append選項,將兩個圖片上下合併。如果使用 +append選項,將兩個圖片左右合併:

[root@localhost data]# convert penguins.jpg penguins_flip.png +append append+pengius.png

在 Linux 中使用ImageMagick命令列操作影像檔案在 Linux 中使用ImageMagick命令列操作影像檔案

調整影像比例

可以使用 -resize來調整比例,下面兩條命令是將圖片縮小65%,和放大到150%。

[root@localhost data]# convert penguins.jpg -resize 65% pen_65.jpg
[root@localhost data]# convert penguins.jpg -resize 150% pen_150.jpg

在 Linux 中使用ImageMagick命令列操作影像檔案在 Linux 中使用ImageMagick命令列操作影像檔案

總結

使用 convert 命令,可以無需開啟影像編輯器進行修改影像檔案。convert命令包含在ImageMagick安裝包裡。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2848977/,如需轉載,請註明出處,否則將追究法律責任。

相關文章