4 moduri de a converti în loturi PNG-ul în JPG și viceversa


În calcul, procesarea batch este executarea unei serii de sarcini într-un program în mod neinteractiv. În acest ghid, vă vor oferi 4 moduri simple de a converti în loturi mai multe imagini .PNG în .JPG și invers, folosind instrumente de linie de comandă Linux.

Vom folosi instrumentul de linie de comandă convertire în toate exemplele, cu toate acestea, puteți folosi și mogrify pentru a realiza acest lucru.

Sintaxa pentru utilizarea convert este:

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

Și pentru mogrify este:

mogrify options input-file

Notă: cu mogrify, fișierul imagine original este înlocuit implicit cu noul fișier imagine, dar este posibil să preveniți acest lucru, prin folosind anumite opțiuni pe care le puteți găsi în pagina de manual.

Mai jos sunt diferitele modalități de a converti toate imaginile .PNG în format .JPG, dacă doriți să convertiți .JPG în .PNG, puteți modifica comenzile în funcție de nevoile dvs.

1. Convertiți PNG în JPG folosind comenzile „ls” și „xargs”.

Comanda ls vă permite să enumerați toate imaginile png și xargs vă permit să construiți și să executați o comandă convert din intrarea standard pentru a converti toate .png imagini la .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"'

Explicație despre opțiunile utilizate în comanda de mai sus.

  1. -1 – indicatorul îi spune ls să listeze o imagine pe linie.
  2. -n – specifică numărul maxim de argumente, care este 1 pentru caz.
  3. -c – instruiește bash să ruleze comanda dată.
  4. $ {0%.png}.jpg – setează numele noii imagini convertite, semnul % ajută la eliminarea vechii extensii de fișier.

Am folosit comanda ls -ltr pentru a lista toate fișierele după data și ora modificate.

În mod similar, puteți utiliza comanda de mai sus pentru a converti toate imaginile dvs. .jpg în .png, modificând comanda de mai sus.

2. Convertiți PNG în JPG utilizând comanda GNU „Parallel”.

GNU Parallel permite unui utilizator să construiască și să execute comenzi shell de la intrarea standard în paralel. Asigurați-vă că aveți GNU Parallel instalat pe sistemul dvs., altfel instalați-l folosind comenzile corespunzătoare de mai jos:

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

Odată instalat utilitarul Parallel, puteți rula următoarea comandă pentru a converti toate imaginile .png în formatul .jpg din intrarea standard.

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

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

Unde,

  1. {} – linie de intrare care este un șir de înlocuire înlocuit cu o linie completă citită din sursa de intrare.
  2. {.} – linia de intrare minus extensia.
  3. ::: – specifică sursa de intrare, adică linia de comandă pentru exemplul de mai sus, unde argumentul este *png sau *jpg.

Alternativ, puteți folosi și comenzile ls și paralel împreună pentru a converti toate imaginile în grup, așa cum se arată:

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

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

3. Convertiți PNG în JPG folosind comanda „for loop”.

Pentru a evita agitația de a scrie un script shell, puteți executa o buclă for din linia de comandă, după cum urmează:

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

Descrierea fiecărei opțiuni utilizate în comanda de mai sus:

  1. -c permite executarea instrucțiunii for buclei între ghilimele simple.
  2. Variabila imagine este un contor pentru numărul de imagini din director.
  3. Pentru fiecare operațiune de conversie, comanda echo informează utilizatorul că o imagine png a fost convertită în format jpg și invers în linia $image convertită în & #36 {image%.png}.jpg ”.
  4. „$ {image%.png}.jpg” creează numele imaginii convertite, unde % elimină extensia vechiului format de imagine.

4. Convertiți PNG în JPG utilizând Scriptul Shell

Dacă nu doriți să vă murdareți linia de comandă ca în exemplul anterior, scrieți un mic script astfel:

Notă: schimbați în mod corespunzător extensiile .png și .jpg ca în exemplul de mai jos pentru conversia dintr-un format altcuiva.

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

Salvați-l ca convert.sh și faceți scriptul executabil și apoi rulați-l din directorul care conține imaginile dvs.

chmod +x convert.sh
./convert.sh

În rezumat, am acoperit câteva modalități importante de a converti în loturi imagini .png în format .jpg și invers. Dacă doriți să optimizați imaginile, puteți parcurge ghidul nostru care arată cum să comprimați imaginile png și jpg în Linux.

De asemenea, puteți împărtăși cu noi orice alte metode, inclusiv instrumentele de linie de comandă Linux pentru conversia imaginilor dintr-un format în altul pe terminal sau să puneți o întrebare prin secțiunea de comentarii de mai jos.