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

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

ImageMagick を使用することをお勧めします。

私は実際の使い方の専門家ではありませんが、これを使って画像関連のことなら何でもできると思います!

例:

convert image.png image.jpg

これにより、元の画像が保持され、変換された画像が作成されます。

バッチ変換に関しては、ImageMagick の一部である Mogrify ツールを使用する必要があると思います。

これは上書きされることに注意してください 古い画像。

コマンドは次のとおりです:

mogrify -format jpg *.png

解決策は他にもいくつかあります。

最も簡単な解決策は、すでに投稿されているほとんどのものと同様です。シンプルな bash for ループ。

for i in *.png ; do convert "$i" "${i%.*}.jpg" ; done

なんらかの理由で、私は bash でのループを避ける傾向があるため、名前マングリングに bash を使用する、より unixy な xargs アプローチを次に示します。

ls -1 *.png | xargs -n 1 bash -c 'convert "$0" "${0%.*}.jpg"'

私が使っているもの。 GNU Parallel を使用して複数のジョブを一度に実行し、パフォーマンスを向上させます。これはデフォルトで多くのシステムにインストールされており、ほぼ間違いなくリポジトリに含まれています (手元に置いておくとよいプログラムです)。

ls -1 *.png | parallel convert '{}' '{.}.jpg'

ジョブ数のデフォルトは、使用している CPU コアの数です。デュアルコア システムで 3 つのジョブを使用すると、CPU 使用率が向上することがわかりました。

ls -1 *.png | parallel -j 3 convert '{}' '{.}.jpg'

また、統計情報が必要な場合 (ETA、完了したジョブ、ジョブごとの平均時間など)

ls -1 *.png | parallel --eta convert '{}' '{.}.jpg'

GNU Parallel を使用している場合は、別の構文もあります。

parallel convert '{}' '{.}.jpg' ::: *.png

他のいくつかのバージョン (debian を含む) にも同様の構文があります。

parallel convert '{}' '{.}.jpg' -- *.png

convert 多くの Linux ディストリビューションにあるコマンドは、ImageMagick スイートの一部としてインストールされます。 convert を実行する bash コードは次のとおりです。 ディレクトリ内のすべての PNG ファイルで、その二重拡張子の問題を回避します:

for img in *.png; do
    filename=${img%.*}
    convert "$filename.png" "$filename.jpg"
done

Linux
  1. TrueType グリフを PNG 画像に変換しますか?

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

  3. Linuxでpptxファイルをjpgまたはpng(スライドごと)に変換する方法は?

  1. Linux コマンドで Webp 画像を PNG に変換する

  2. Linuxでpdfを2upに変換する

  3. Linux 待ち行列システム

  1. クリップボードからの Linux イメージ

  2. Linux バッチ変換:convert で jpg の品質を変更しますが、その名前は保持します

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