4 måter å batchkonvertere PNG til JPG og omvendt


I databehandling er Batch-behandling utførelsen av en rekke oppgaver i et program ikke-interaktivt. I denne veiledningen vil du tilby 4 enkle måter å konvertere flere .PNG-bilder til .JPG og omvendt ved å bruke Linux-kommandolinjeverktøy.

Vi vil bruke kommandolinjeverktøyet konverter i alle eksemplene, men du kan også bruke mogrify for å oppnå dette.

Syntaksen for å bruke konverter er:

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

Og for mogrify er:

mogrify options input-file

Merk: Med mogrify erstattes den opprinnelige bildefilen med den nye bildefilen som standard, men det er mulig å forhindre dette ved å ved å bruke visse alternativer som du kan finne på man-siden.

Nedenfor er de forskjellige måtene å konvertere alle .PNG-bildene dine til .JPG-format, hvis du ønsker å konvertere .JPG til .PNG, kan du endre kommandoene i henhold til dine behov.

1. Konverter PNG til JPG ved å bruke 'ls' og 'xargs' kommandoer

ls-kommandoen lar deg liste alle png-bildene dine og xargs gjør det mulig å bygge og utføre en konverter-kommando fra standardinndata for å konvertere alle .png-bilder 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 alternativene som brukes i kommandoen ovenfor.

  1. -1 – flagget forteller ls å liste ett bilde per linje.
  2. -n – angir maksimalt antall argumenter, som er 1 for saken.
  3. -c – instruerer bash å kjøre den gitte kommandoen.
  4. $ {0%.png}.jpg – angir navnet på det nye konverterte bildet, %-tegnet hjelper til med å fjerne den gamle filtypen.

Jeg brukte kommandoen ls -ltr for å liste alle filer etter endret dato og klokkeslett.

På samme måte kan du bruke kommandoen ovenfor for å konvertere alle .jpg-bildene dine til .png ved å justere kommandoen ovenfor.

2. Konverter PNG til JPG ved å bruke GNU 'Parallell'-kommando

GNU Parallel gjør det mulig for en bruker å bygge og utføre skallkommandoer fra standard input parallelt. Sørg for at du har GNU Parallel installert på systemet ditt, ellers installer det ved å bruke de riktige kommandoene nedenfor:

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

Når Parallell-verktøyet er installert, kan du kjøre følgende kommando for å konvertere alle .png-bilder til .jpg-format fra standardinndata.

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

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

Hvor,

  1. {} – inngangslinje som er en erstatningsstreng erstattet av en komplett linje som er lest fra inngangskilden.
  2. {.} – inndatalinje minus utvidelse.
  3. ::: – spesifiserer inngangskilden, det vil si kommandolinjen for eksemplet ovenfor der *png eller *jpg er argumentet.

Alternativt kan du også bruke ls og parallelle kommandoer sammen for å konvertere alle bildene dine 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 å bruke 'for loop'-kommandoen

For å unngå stresset med å skrive et skallskript, kan du kjø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 av hvert alternativ som brukes i kommandoen ovenfor:

  1. -c tillater utførelse av for loop-setningen i enkle anførselstegn.
  2. image-variabelen er en teller for antall bilder i katalogen.
  3. For hver konverteringsoperasjon informerer echo-kommandoen brukeren om at et png-bilde har blitt konvertert til jpg-format og omvendt på linjen $image konvertert til & #36 {image%.png}.jpg ".
  4. «$ {image%.png}.jpg» oppretter navnet på det konverterte bildet, der % fjerner utvidelsen av det gamle bildeformatet.

4. Konverter PNG til JPG ved å bruke Shell Script

Hvis du ikke vil gjøre kommandolinjen skitten som i forrige eksempel, skriv et lite skript slik:

Merk: Bytt ut utvidelsene .png og .jpg på riktig måte som i eksemplet nedenfor for konvertering fra ett format til en annen.

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

Lagre det som convert.sh og gjør skriptet kjørbart og kjør det fra katalogen som har bildene dine.

chmod +x convert.sh
./convert.sh

Oppsummert dekket vi noen viktige måter å batchkonvertere .png-bilder til .jpg-format og vice versa. Ønsker du å optimalisere bilder kan du gå gjennom vår guide som viser hvordan du komprimerer png- og jpg-bilder i Linux.

Du kan like godt dele andre metoder med oss, inkludert Linux-kommandolinjeverktøy for å konvertere bilder fra ett format til et annet på terminalen, eller stille et spørsmål via kommentarfeltet nedenfor.