4 måder at batchkonvertere din PNG til JPG og vice-versa


I computing er batchbehandling udførelsen af en række opgaver i et program ikke-interaktivt. I denne vejledning tilbyder du 4 enkle måder at batchkonvertere flere .PNG -billeder til .JPG og omvendt ved hjælp af Linux-kommandolinjeværktøjer.

Vi bruger konverter kommandolinjeværktøj i alle eksemplerne, men du kan lige så godt gøre brug af mogrify for at opnå dette.

Syntaksen for at bruge konvertere er:

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

Og for mogrify er:

$ mogrify options input-file

Bemærk: Med mogrify erstattes den originale billedfil som standard med den nye billedfil, men det er muligt at forhindre dette ved at bruge visse indstillinger, som du kan finde på mandsiden.

Nedenfor er de forskellige måder at batchkonvertere alle dine .PNG -billeder til .JPG -format, hvis du vil konvertere .JPG til .PNG , du kan ændre kommandoerne efter dine behov.

1. Konverter PNG til JPG ved hjælp af 'ls' og 'xargs' kommandoer

Kommandoen ls giver dig mulighed for at liste alle dine png-billeder, og xargs gør det muligt at opbygge og udføre en konverteringskommando fra standardindgang for at konvertere alle .png -billeder til .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"'

Forklaring om de muligheder, der anvendes i ovenstående kommando.

  1. -1 - flag fortæller ls at angive et billede pr. linje.
  2. -n - angiver det maksimale antal argumenter, som er 1 for sagen.
  3. -c - beder bash om at køre den givne kommando.
  4. & # 36 {0% .png} .jpg - indstiller navnet på det nye konverterede billede,% -tegnet hjælper med at fjerne den gamle filtypenavn.

Jeg brugte ls -ltr kommando til at liste alle filer efter ændret dato og klokkeslæt.

På samme måde kan du bruge ovenstående kommando til at konvertere alle dine .jpg -billeder til .png ved at tilpasse ovenstående kommando.

2. Konverter PNG til JPG ved hjælp af GNU 'Parallel' kommando

GNU Parallel gør det muligt for en bruger at oprette og udføre shell-kommandoer fra standardinput parallelt. Sørg for, at du har GNU Parallel installeret på dit system, ellers skal du installere det ved hjælp af de relevante kommandoer nedenfor:

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

Når Parallel-hjælpeprogrammet er installeret, kan du køre følgende kommando for at konvertere alle .png -billeder til .jpg -format fra standardindgangen.

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

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

Hvor,

  1. {} - inputlinje, som er en erstatningsstreng erstattet af en komplet linje, der er læst fra inputkilden.
  2. {.} - inputlinje minus udvidelse.
  3. ::: - specificerer inputkilde, det vil sige kommandolinjen til eksemplet ovenfor, hvor * png eller * jpg er argumentet.

Alternativt kan du lige så godt bruge ls og parallelle kommandoer sammen til batchkonvertering af alle dine billeder som vist:

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

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

3. Konverter PNG til JPG ved hjælp af 'for loop' kommando

For at undgå trængsel ved at skrive et shell-script kan du udføre en for loop fra kommandolinjen som følger:

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

Beskrivelse af hver indstilling, der bruges i ovenstående kommando:

  1. -c tillader udførelse af for loop-sætningen i enkelt anførselstegn.
  2. Billedvariablen er en tæller for antallet af billeder i biblioteket.
  3. For hver konverteringshandling informerer ekkokommandoen brugeren om, at et png-billede er blevet konverteret til jpg-format og omvendt i linjen $ image konverteret til & # 36 {image% .png} .jpg ”.
  4. "& # 36 {image% .png} .jpg" opretter navnet på det konverterede billede, hvor% fjerner udvidelsen af det gamle billedformat.

4. Konverter PNG til JPG ved hjælp af Shell Script

Hvis du ikke vil gøre din kommandolinje beskidt som i det foregående eksempel, skal du skrive et lille script som sådan:

Bemærk: Udskift udvidelserne .png og .jpg korrekt som i eksemplet nedenfor til konvertering fra et format til et andet.

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

Gem det som convert.sh , og gør scriptet eksekverbart, og kør det derefter fra den mappe, der har dine billeder.

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

Sammenfattende dækkede vi nogle vigtige måder at batchkonvertere .png -billeder til .jpg -format og omvendt. Hvis du vil optimere billeder, kan du gå gennem vores guide, der viser, hvordan du komprimerer png- og jpg-billeder i Linux.

Du kan også dele andre metoder med os, herunder Linux kommandolinjeværktøjer til konvertering af billeder fra et format til et andet på terminalen, eller stille et spørgsmål via kommentarsektionen nedenfor.