回答:
UbuntuにImageMagickがインストールされている可能性があります。
それができる、
convert filename.bmp filename.jpg
更新:
mogrify
(によって答えhyperslug
とによって参照されるcjm
)にも良いオプションです。
mogrifyプログラムを使用して、画像のサイズ変更、ぼかし、切り抜き、斑点除去、ディザリング、描画、反転、結合、再サンプリングなどを行います。
このツールは、元のイメージファイルが (オプションでファイルサフィックスを変更しない限り)要求された変更で上書きされることを除いて、変換に似て
います-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}
部分は、文字列「$ {i}」の末尾に「bmp」サブストリングがないことを意味します。
「$ {i}」の文字列を変換する他の操作があります。「$ i」は「$ {i}」の短縮形です。ls *.bmp
salmonmooseの回答の部分は「実行」を意味しls *.bmp
、次にfor i
部分はスペースで区切られた各文字列をi
「」に割り当てます。*.bmp
ディレクトリ内のすべてのファイル名と一致するため、同じことが実現されます。
欠点がありfor
ます-ディレクトリ内のファイルの名前にスペースが含まれている場合(「wedding picture 1.bmp」など)、i
varに3回割り当てられ、次のコマンドを実行します。
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ファイル内のすべての画像を結合する場合、最初の回答で述べたように、それらを他のフィルターと連結できます。
for i in `ls *.bmp`; do convert $i $i.jpg; done
はい、これはfilename.bmp.jpgと呼ばれるファイルの束を作成しますが、それは仕事をします。
ls
。