フォルダ内の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}