Command

將所有非 JPG 圖像轉換為 JPG

  • December 31, 2018

我可以使用什麼命令將文件夾中不是 JPG(主要是 PNG 和 BMP)的所有圖像轉換為 JPG?我還希望轉換質量為 100%。我希望轉換後的圖像替換原件。

假設該文件夾中只有圖像,您可以

ls | grep -v jpg$

獲取所有不以 結尾的文件名,jpg我假設這是您要轉換的所有圖像。然後你可以像這樣convert使用ImageMagick的工具

ls | grep -v jpg$ | while IFS= read -r FILENAME
do
   convert "${FILENAME}" "${FILENAME%.*}.jpg"
done

convert命令擴展為convert <file name as printed by ls> <file name without extention>.jpg。擴展jpg名將告訴convert轉換為 jpg 格式。

轉換目前目錄中的所有.png.bmp然後刪除原始文件:

mogrify -format jpg -quality 100 ./*.{png,bmp}
rm ./*.{png,bmp}

要轉換除 之外的所有文件.jpg,如果您的 shell 支持擴展萬用字元,例如bash

shopt extglob
mogrify -format jpg -quality 100 ./*.!(jpg)
rm ./*.!(jpg)

zsh

setopt extended_glob
mogrify -format jpg -quality 100 ./^*.jpg
rm ./^*.jpg

遞歸:

find . -type f ! -name '*.jpg' -exec \
mogrify -format jpg -quality 100 {} + -exec rm {} +

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