コンピューティングでは、バッチ 処理とは、プログラム内の一連のタスクを非対話的に実行することです。このガイドでは、いくつかの.PNG
をバッチ変換する4つの簡単な方法を紹介します。 .JPG
への画像 Linuxコマンドラインツールを使用する場合とその逆。
変換を使用します すべての例でコマンドラインツールを使用できますが、 mogrifyを使用することもできます。 これを達成するために。
convertを使用するための構文 は:
$ convert input-option input-file output-option output-file
そしてmogrify は:
$ mogrify options input-file
以下は、すべての.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
–フラグは lsに通知します 1行に1つの画像を一覧表示します。 -
-n
–引数の最大数を指定します。これは 1です。 ケースのために。 -
-c
–指定されたコマンドを実行するようにbashに指示します。 -
${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
どこで、
-
{}
–入力ソースから読み取られた完全な行に置き換えられた置換文字列である入力行。 {.}
–入力行から拡張子を引いたもの。-
:::
–入力ソースを指定します。これは、上記の例の * 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'
上記のコマンドで使用される各オプションの説明:
- -c forループステートメントを一重引用符で囲むことができます。
- 画像 変数は、ディレクトリ内の画像の数のカウンタです。
- 変換操作ごとに、echoコマンドはpng画像が jpgに変換されたことをユーザーに通知します $ imageの行の形式とその逆 $ {image%.png} .jpgに変換 」。
- 「${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コマンドラインツールを含む他の方法を私たちと共有したり、下のコメントセクションから質問したりすることもできます。