誰かが大量のBMPファイルを送ってきたので、JPEGでそれらを必要としています。GIMPを使用してそれらを1つずつ変換することはできますが、すべてを一度に実行したいのです。Ubuntuがあります。
ImageMagickのmogrifyツールを使用できます
mogrify -format jpg * .bmp
ImageMagick がUbuntuにインストールされている可能性があります。
あれは できる 、
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
for
コマンドの詳細については、man bash
を参照してください。 ${i%bmp}
部分は、文字列 "$ {i}"を意味し、末尾に "bmp"サブ文字列がありません。
「$ {i}」の文字列を変換する他の操作があります。 「$ i」は「$ {i}」の省略形です。 salmonmoose回答のls *.bmp
部分は「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という一連のファイルが作成されますが、これでうまくいきます。
あなたはImageMagickの助けを借りてそれを達成することができます。 this link は例です