Imagemagick

如何使用imagemagick將目錄中的所有圖像,jpg縮小到另一個目錄

  • March 29, 2018

我閱讀了使用 mogrify (imagemagick) 批量轉換我的所有文件(帶參數),看起來我的查詢/路徑非常相似,除了我目錄中的所有圖片都具有相同的寬度和高度。

[$] mediainfo 20160714_161847.jpg                                                                                               
General
Complete name                            : 20160714_161847.jpg
Format                                   : JPEG
File size                                : 2.66 MiB

Image
Format                                   : JPEG
Width                                    : 4 128 pixels
Height                                   : 2 322 pixels
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Compression mode                         : Lossy
Stream size                              : 2.66 MiB (100%)

現在我想將它們批量壓縮到另一個目錄,這樣原始/父圖片就不會被觸及。我確實知道任何壓縮基本上都會從圖片中提取資訊並且會產生一些偽影。

更明確地說,假設目錄的數量是 -

/home/shirish/input_directory/*.jpg - input_directory 包含所有需要縮小/修剪的 .jpg 文件,以便它們可以用於網路發布。

/home/shirish/output_directory/ - 這是被操縱的圖片最終應該出現的地方。原始圖片根本不應該被觸摸,並保持在原處。

如果有一種方法可以在處理圖片時也可以看到操作的進度,或者僅使用 ASCII 欄,或者最好告訴您要完成多少張圖像,這將是一個不錯的選擇連同控制台/ASCII 欄。

有趣的是,範例圖像似乎沒有任何 gps 資訊,即使我確信集合中的某些圖像具有該資訊。是否還有一種方法可以搜尋/搜尋所有圖像,以查看圖像中是否存在位置感知資訊(GPS 座標)或類似資訊。

更新 - 只是為了分享它 - 見 -

~/Pictures/original$ mogrify -path /home/shirish/Pictures/reduced -monitor -quality 70 -trim -resize '>'600x480 *.jpg

   load image[asus-prime-Z270-p-lga1151-motherboard.jpg]: 1215 of 1216, 100% complete

   Resize/Image//home/shirish/Pictures/reduced[asus-prime-Z270-p-lga1151-motherboard.jpg]: 1052 of 1053, 100% complete

   Save/Image//home/shirish/Pictures/reduced[asus-prime-Z270-p-lga1151-motherboard.jpg]: 479 of 480, 100% complete

我唯一不知道的是 imagemagick 從哪裡得到編號,但那是另一天,完全是另一個問題:)

這是命令的最小版本,用於調整寬度 600 高度 400(如果大於該值),將 jpeg 質量設置為 70(它是一個百分比:較小的數字導致較少的字節但質量較低)。

cd /home/shirish/input_directory/
mogrify -path /home/shirish/output_directory/ -monitor   -quality 70  -trim  -resize '>'600x400 *.jpg

如果文件太多,您可能需要使用find|xargs

引用自:https://unix.stackexchange.com/questions/297060