ImageMagick の mogrify ツールを使用できます
mogrify -format jpg *.bmp
Ubuntu に ImageMagick がインストールされている可能性があります。
convert filename.bmp filename.jpg
更新:
mogrify
(hyperslug
が回答) cjm
によって参照されます ) も良いオプションです。
mogrify を使用する 画像のサイズ変更、ぼかし、トリミング、斑点除去、ディザリング、描画、反転、結合、再サンプルなどを行うプログラム。
このツールは convert に似ています ただし、元の画像ファイルは上書きされます
(ファイル サフィックスを -format
で変更しない限り、 オプション) 必要な変更を加えます。
サーモンムースの回答を少し変更させてください:
for i in `ls *.bmp`; do convert $i $i.jpg; done
上記は機能しますが、「bmp.jpg」という名前のファイルが生成されます。このコマンドで .jpg ファイルを取得できます:
for i in *.bmp; do convert ${i} ${i%bmp}jpg; done
man bash
を参照 for
の詳細 指図。 ${i%bmp}
部分は、末尾に「bmp」部分文字列がない文字列「${i}」を意味します。
"${i}" の文字列を変換する操作は他にもあります。 「$i」は「${i}」の短縮形です。 ls *.bmp
サーモンムースの回答の一部は、「ls *.bmp
を実行する」という意味です 、次に i
の part は、スペースで区切られた各文字列を i
に割り当てます "。同じことが *.bmp
によって達成されます ディレクトリ内のすべてのファイル名に一致するためです。
for
には欠点があります - ディレクトリ内のファイルの名前にスペースが含まれている場合 (例:"wedding picture 1.bmp")、i
に 3 回割り当てられます。 var、これらのコマンドを実行:
convert wedding wedding.jpg
convert picture picture.jpg
convert 1.bmp 1.bmp.jpg
私の回答では、一致 "${i%bmp}" も失敗します。
しかし、解決策があります - find
を使用できます 代わりにコマンドを実行してください。 man find
を参照 詳細については。次のように入力する必要があります (試す前に、man ページで構文を確認してください):
find -name *.bmp -type f -exec convert '{}' '{}'.jpg \;
(名前の部分はよくわかりません。また、-exec
の部分にも疑問があります。 一部、man find
を参照 最初)
すべての画像を 1 つの .jpg ファイルに結合したい場合は、最初の回答で述べたように、それらを他のフィルターと連結できます。