GNU/Linux >> Linux の 問題 >  >> Linux

Linux で大量の BMP ファイルを JPEG に変換する

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 ファイルに結合したい場合は、最初の回答で述べたように、それらを他のフィルターと連結できます。


Linux
  1. LinuxでファイルをUTF-8エンコーディングに変換する方法

  2. Linuxの検索コマンド

  3. Linuxログファイル

  1. この用途の広いLinuxコマンドでオーディオファイルを変換する

  2. Linuxでコマンドラインを使用してPDFをJPGに変換するには?

  3. LinuxでPNGをJPGにバッチ変換する

  1. Linux ls コマンド - ファイルの一覧表示

  2. Linux の mcopy コマンド

  3. Linux でファイル名を大文字に変更