JPG以外のすべての画像をJPGに変換

JPG以外のすべての画像をJPGに変換

フォルダ内のJPG(主にPNGおよびBMP)以外のすべての画像をJPGに変換するには、どのコマンドを使用できますか?また、変換品質が100%になることを願っています。元の画像を変換された画像に置き換えたいです。

答え1

フォルダに画像だけがあるとします。

ls | grep -v jpg$

で終わらないすべてのファイル名を取得してくださいjpg。変換したいすべての画像がこれであるとします。その後、convertツールを使用できます。イメージマジシャンこのように

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

コマンドconvertは、.jpg形式に変換するようにconvert <file name as printed by ls> <file name without extention>.jpg求めjpgられます。convert

答え2

現在のディレクトリ内のすべてのファイルを変換した後に元のファイルを削除するには、次の手順を実行します.png.bmp

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

シェルが拡張ワイルドカードをサポートしている場合は、以下を.jpg除くすべてのファイルを変換します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 {} +

答え3

XNView CLIプログラムを使用して追加のソリューションを見つけました。切り替えるインストールチュートリアルですLinux用nConvert。

次のnConvertコマンドはすべての画像形式をjpgに変換し、rmコマンドはすべてのbmpファイルとpngファイルを削除します。

nconvert -out jpeg -o output-##.jpg *.* && rm ./*.{png,bmp}

関連情報