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

PNGをJPGにバッチ変換する4つの方法とその逆

コンピューティングでは、バッチ 処理とは、プログラム内の一連のタスクを非対話的に実行することです。このガイドでは、いくつかの.PNGをバッチ変換する4つの簡単な方法を紹介します。 .JPGへの画像 Linuxコマンドラインツールを使用する場合とその逆。

変換を使用します すべての例でコマンドラインツールを使用できますが、 mogrifyを使用することもできます。 これを達成するために。

convertを使用するための構文 は:

$ convert input-option input-file output-option output-file

そしてmogrify は:

$ mogrify options input-file

注 : mogrifyを使用 、元の画像ファイルはデフォルトで新しい画像ファイルに置き換えられますが、manページにある特定のオプションを使用することでこれを防ぐことができます。

以下は、すべての.PNGをバッチ変換するさまざまな方法です。 .JPGへの画像 .JPGを変換する場合はフォーマット .PNGへ 、必要に応じてコマンドを変更できます。

1。 「ls」および「xargs」コマンドを使用してPNGをJPGに変換する

lsコマンドを使用すると、すべての pngを一覧表示できます。 画像とxargs 変換の構築と実行を可能にする すべての.pngを変換するための標準入力からのコマンド .jpgへの画像 。

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

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

上記のコマンドで使用されるオプションについての説明。

  1. -1 –フラグは lsに通知します 1行に1つの画像を一覧表示します。
  2. -n –引数の最大数を指定します。これは 1です。 ケースのために。
  3. -c –指定されたコマンドを実行するようにbashに指示します。
  4. ${0%.png}.jpg –新しく変換された画像の名前を設定します 記号は、古いファイル拡張子を削除するのに役立ちます。

ls -ltrを使用しました 変更された日時ですべてのファイルを一覧表示するコマンド。

同様に、上記のコマンドを使用して、すべての.jpgを変換できます。 .pngへの画像 上記のコマンドを微調整します。

2。 GNU「Parallel」コマンドを使用してPNGをJPGに変換する

GNU Parallel ユーザーが標準入力からシェルコマンドを並行して構築および実行できるようにします。システムにGNUParallelがインストールされていることを確認してください。インストールされていない場合は、以下の適切なコマンドを使用してインストールしてください。

$ sudo apt-get install parallel     [On Debian/Ubuntu systems]
$ sudo yum install parallel         [On RHEL/CentOS and Fedora]

一度パラレル ユーティリティがインストールされている場合は、次のコマンドを実行してすべての.pngを変換できます .jpgへの画像 標準入力からのフォーマット。

----------- Convert PNG to JPG ----------- 
$ parallel convert '{}' '{.}.jpg' ::: *.png

----------- Convert JPG to PNG -----------
$ parallel convert '{}' '{.}.png' ::: *.jpg

どこで、

  1. {} –入力ソースから読み取られた完全な行に置き換えられた置換文字列である入力行。
  2. {.} –入力行から拡張子を引いたもの。
  3. ::: –入力ソースを指定します。これは、上記の例の * pngのコマンドラインです。 または*jpg 引数です。

または、lsと parallel を使用することもできます 次のようにコマンドを組み合わせて、すべての画像をバッチ変換します。

----------- Convert PNG to JPG ----------- 
$ ls -1 *.png | parallel convert '{}' '{.}.jpg'

----------- Convert JPG to PNG -----------
$ ls -1 *.jpg | parallel convert '{}' '{.}.png'

3。 「forloop」コマンドを使用してPNGをJPGに変換する

シェルスクリプトを書く手間を省くために、for loopを実行できます。 次のようにコマンドラインから:

----------- Convert PNG to JPG ----------- 
$ bash -c 'for image in *.png; do convert "$image" "${image%.png}.jpg"; echo “image $image converted to ${image%.png}.jpg ”; done'

----------- Convert JPG to PNG -----------
$ bash -c 'for image in *.jpg; do convert "$image" "${image%.jpg}.png"; echo “image $image converted to ${image%.jpg}.png ”; done'

上記のコマンドで使用される各オプションの説明:

  1. -c forループステートメントを一重引用符で囲むことができます。
  2. 画像 変数は、ディレクトリ内の画像の数のカウンタです。
  3. 変換操作ごとに、echoコマンドはpng画像が jpgに変換されたことをユーザーに通知します $ imageの行の形式とその逆 $ {image%.png} .jpgに変換 」。
  4. 「${image%.png}.jpg」 変換された画像の名前を作成します。ここで、 古い画像形式の拡張子を削除します。

4。シェルスクリプトを使用してPNGをJPGに変換する

前の例のようにコマンドラインを汚したくない場合は、次のような小さなスクリプトを記述します。

注 :.pngを適切に交換します および.jpg ある形式から別の形式に変換するための、以下の例のような拡張機能。

#!/bin/bash
#convert
for image in *.png; do
        convert  "$image"  "${image%.png}.jpg"
        echo “image $image converted to ${image%.png}.jpg ”
done
exit 0 

convert.shとして保存します スクリプトを実行可能にして、画像があるディレクトリ内から実行します。

$ chmod +x convert.sh
$ ./convert.sh

要約すると、.pngをバッチ変換するいくつかの重要な方法について説明しました。 .jpgへの画像 フォーマットおよびその逆。画像を最適化したい場合は、Linuxでpngおよびjpg画像を圧縮する方法を示すガイドを参照してください。

ターミナルで画像をある形式から別の形式に変換するためのLinuxコマンドラインツールを含む他の方法を私たちと共有したり、下のコメントセクションから質問したりすることもできます。


Linux
  1. Metamorphose 2 –Linuxでファイルとフォルダーの名前をバッチで変更

  2. SFTPとSCPを使用する

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

  1. LinuxコマンドラインでJPEGまたはPNG画像を最適化および圧縮する方法

  2. 作成日に従ってJpgを並べ替え、単一のPDFに変換しますか?

  3. PDF ファイルのバッチ サイズ変更と圧縮

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

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

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