4 Weeër fir Batch Konvertéieren Äre PNG op JPG a Vice-Versa


Am Informatik ass Batchveraarbechtung d'Ausféierung vun enger Serie vun Aufgaben an engem Programm net-interaktiv. An dësem Guide ginn Iech 4 einfach Weeër ubitt fir e puer .PNG Biller op .JPG ze batch konvertéieren a vice-versa mat Linux Kommandozeil-Tools.

Mir benotze Konvertéierungs Kommandozeil Tool an all de Beispiller, awer Dir kënnt och Mogrify benotzen fir dëst z'erreechen.

D'Syntax fir d'Konvertéierung ze benotzen ass:

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

A fir Mogrify ass:

$ mogrify options input-file

Bemierkung: Mat Mogrify gëtt déi ursprénglech Bilddatei als Standard mat der neier Bilddatei ersat, awer et ass méiglech dëst ze verhënneren, andeems Dir verschidden Optiounen benotzt, déi Dir op der Man-Säit fannt.

Drënner sinn déi verschidde Weeër fir Är all .PNG Biller op .JPG Format ze batch konvertéieren, wann Dir .JPG op wëllt konvertéieren .PNG, Dir kënnt d'Befehle no Äre Besoinen änneren.

1. Konvertéiert PNG op JPG Mat 'ls' an 'xargs' Kommandoen

De Kommando ls erlaabt Iech all Är png Biller ze lëschten an xargs maachen et méiglech e Konvertéierungskommando aus Standardinput ze bauen an auszeféieren fir all .png Biller op .jpg ze konvertéieren.

----------- 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"'

Erklärung iwwer d'Optiounen déi am uewe genannte Kommando benotzt ginn.

  1. -1 – Fändel erzielt d'Ls fir ee Bild pro Zeil ze lëschten.
  2. -n – spezifizéiert déi maximal Unzuel vun Argumenter, dat ass 1 fir de Fall.
  3. -c – instruéiert bash fir de gegebene Kommando auszeféieren.
  4. $ {0%.png}.jpg - setzt den Numm vum neie konvertéierte Bild fest, d'% Zeechen hëlleft déi al Dateierweiterung ze läschen.

Ech hunn ls -ltr Kommando benotzt fir all Dateien no geännerten Datum an Zäit ze lëschten.

Ähnlech kënnt Dir de Kommando uewe benotze fir all Är .jpg Biller op .png ze konvertéieren andeems Dir de uewe genannte Kommando tweaking.

2. Konvertéiert PNG op JPG Mat GNU 'Parallel' Kommando

GNU Parallel erméiglecht e Benotzer fir Shellbefehle vum Standardinput parallel ze bauen an auszeféieren. Vergewëssert Iech datt Dir GNU Parallel op Ärem System installéiert hutt, soss installéiert se mat de passenden Kommandoen hei drënner:

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

Soubal Parallel Utility installéiert ass, kënnt Dir de folgende Kommando ausféieren fir all .png Biller op .jpg Format aus dem Standardinput ze konvertéieren.

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

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

Wou,

  1. {} - Input Linn déi eng Ersatzstring ass, ersat duerch eng komplett Linn, déi vun der Inputquell gelies gëtt.
  2. {.} – Input Linn minus Extensioun.
  3. ::: – spezifizéiert d'Inputquell, dat ass d'Kommandozeil fir dat Beispill hei uewen, wou *png oder *jpg d'Argument ass.

Alternativ kënnt Dir och ls a parallel Kommandoen zesumme benotzen fir all Är Biller ze batch konvertéieren wéi gewisen:

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

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

3. Konvertéiert PNG op JPG Benotzt 'fir Loop' Kommando

Fir d'Hascht ze vermeiden fir e Shell-Skript ze schreiwen, kënnt Dir e fir Loop aus der Kommandozeil ausféieren wéi follegt:

----------- 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'

Beschreiwung vun all Optioun am uewe genannte Kommando benotzt:

  1. -c erlaabt d'Ausféierung vun der for-loop Ausso an eenzel Zitater.
  2. D'Bildvariabel ass e Konter fir d'Zuel vun de Biller am Verzeechnes.
  3. Fir all Konversiounsoperatioun informéiert den Echo Kommando de Benotzer datt e png Bild an jpg Format ëmgewandelt gouf a vice-versa an der Linn $image ëmgerechent op $ {image%.png}.jpg.
  4. \$ {image%.png}.jpg erstellt den Numm vum ëmgerechent Bild, wou % d'Extensioun vum alen Bildformat läscht.

4. Convertéieren PNG zu JPG Benotzt Shell Skript

Wann Dir Är Kommandozeil net dreckeg maache wëllt wéi am virege Beispill, schreift e klenge Skript wéi esou:

Bemierkung: Passend austauschen .png an .jpg Extensiounen wéi am Beispill hei ënnen fir d'Konversioun vun engem Format an en anert.

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

Späichert et als convert.sh a maacht de Skript ausféierbar a leeft et dann aus dem Verzeechnes deen Är Biller huet.

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

Zesummegefaasst hu mir e puer wichteg Weeër iwwerdeckt fir .png Biller op .jpg-Format ze batch konvertéieren a vice-versa. Wann Dir Biller optiméiere wëllt, kënnt Dir duerch eise Guide goen, deen weist wéi Dir png- a jpg-Biller op Linux kompriméiert.

Dir kënnt och mat eis all aner Methoden deelen, dorënner Linux Kommandozeil Tools fir Biller vun engem Format an en anert um Terminal ze konvertéieren, oder eng Fro stellen iwwer d'Kommentarsektioun hei drënner.