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
– flagget forteller ls å liste ett bilde per linje.-n
– angir maksimalt antall argumenter, som er 1 for saken.-c
– instruerer bash å kjøre den gitte kommandoen.$ {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,
{}
– inngangslinje som er en erstatningsstreng erstattet av en komplett linje som er lest fra inngangskilden.{.}
– inndatalinje minus utvidelse.:::
– 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:
- -c tillater utførelse av for loop-setningen i enkle anførselstegn.
- image-variabelen er en teller for antall bilder i katalogen.
- 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 ".
- «$ {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.