Zoeken op website

4 manieren om uw PNG in batches naar JPG te converteren en vice versa


Bij computergebruik is Batch verwerking de niet-interactieve uitvoering van een reeks taken in een programma. In deze handleiding vindt u vier eenvoudige manieren om meerdere .PNG-afbeeldingen batchgewijs naar .JPG te converteren en vice versa met behulp van Linux-opdrachtregelprogramma's.

We zullen in alle voorbeelden het opdrachtregelprogramma convert gebruiken, maar u kunt ook mogrify gebruiken om dit te bereiken.

De syntaxis voor het gebruik van convert is:

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

En voor mogrify geldt:

mogrify options input-file

Opmerking: Met mogrify wordt het originele afbeeldingsbestand standaard vervangen door het nieuwe afbeeldingsbestand, maar het is mogelijk dit te voorkomen door met behulp van bepaalde opties die u op de manpagina kunt vinden.

Hieronder vindt u de verschillende manieren om al uw .PNG-afbeeldingen batchgewijs naar het .JPG-formaat te converteren, als u .JPG naar wilt converteren .PNG, kunt u de opdrachten aanpassen aan uw behoeften.

1. Converteer PNG naar JPG met behulp van de opdrachten ‘ls’ en ‘xargs’

Met het ls-commando kunt u al uw png-afbeeldingen weergeven en met xargs kunt u een convert-commando bouwen en uitvoeren vanuit standaardinvoer om alles te converteren .png afbeeldingen naar .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"'

Uitleg over de opties die in het bovenstaande commando worden gebruikt.

  1. -1 – vlag vertelt ls om één afbeelding per regel weer te geven.
  2. -n – specificeert het maximale aantal argumenten, dat is 1 voor de hoofdlettergebruik.
  3. -c – instrueert bash om het gegeven commando uit te voeren.
  4. $ {0%.png}.jpg – stelt de naam in van de nieuwe geconverteerde afbeelding, het % teken helpt om de oude bestandsextensie te verwijderen.

Ik heb de opdracht ls -ltr gebruikt om alle bestanden op gewijzigde datum en tijd weer te geven.

Op dezelfde manier kunt u het bovenstaande commando gebruiken om al uw .jpg afbeeldingen naar .png te converteren door het bovenstaande commando aan te passen.

2. Converteer PNG naar JPG met behulp van de GNU ‘Parallel’-opdracht

GNU Parallel stelt een gebruiker in staat shell-opdrachten parallel te bouwen en uit te voeren vanuit standaardinvoer. Zorg ervoor dat GNU Parallel op uw systeem is geïnstalleerd, anders installeert u het met behulp van de juiste onderstaande opdrachten:

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

Zodra het hulpprogramma Parallel is geïnstalleerd, kunt u de volgende opdracht uitvoeren om alle .png-afbeeldingen vanuit de standaardinvoer naar het .jpg-formaat te converteren.

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

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

Waar,

  1. {} – invoerregel die een vervangende tekenreeks is, vervangen door een volledige regel die uit de invoerbron wordt gelezen.
  2. {.} – invoerregel minus extensie.
  3. ::: – specificeert de invoerbron, dat is de opdrachtregel voor het bovenstaande voorbeeld, waarbij *png of *jpg het argument is.

Als alternatief kunt u net zo goed de opdrachten ls en parallel samen gebruiken om al uw afbeeldingen batchgewijs te converteren, zoals weergegeven:

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

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

3. Converteer PNG naar JPG met behulp van de ‘for loop’-opdracht

Om de rompslomp van het schrijven van een shell-script te vermijden, kunt u als volgt een for-lus vanaf de opdrachtregel uitvoeren:

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

Beschrijving van elke optie die in de bovenstaande opdracht wordt gebruikt:

  1. -c maakt uitvoering van de for-lus-instructie tussen enkele aanhalingstekens mogelijk.
  2. De image variabele is een teller voor het aantal afbeeldingen in de directory.
  3. Voor elke conversiebewerking informeert het echo-commando de gebruiker dat een png-afbeelding is geconverteerd naar het jpg-formaat en omgekeerd in de regel $image geconverteerd naar & #36 {afbeelding%.png}.jpg ”.
  4. “$ {image%.png}.jpg” creëert de naam van de geconverteerde afbeelding, waarbij % de extensie van het oude afbeeldingsformaat verwijdert.

4. Converteer PNG naar JPG met behulp van Shell Script

Als u uw opdrachtregel niet vies wilt maken, zoals in het vorige voorbeeld, schrijft u een klein script als volgt:

Opmerking: wissel de extensies .png en .jpg op de juiste manier uit, zoals in het onderstaande voorbeeld, voor conversie van één formaat naar een ander.

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

Sla het op als convert.sh en maak het script uitvoerbaar en voer het vervolgens uit vanuit de map met uw afbeeldingen.

chmod +x convert.sh
./convert.sh

Samenvattend hebben we enkele belangrijke manieren besproken om .png-afbeeldingen batchgewijs naar het .jpg-formaat te converteren en omgekeerd. Als je afbeeldingen wilt optimaliseren, kun je onze gids raadplegen die laat zien hoe je png- en jpg-afbeeldingen comprimeert in Linux.

U kunt net zo goed alle andere methoden met ons delen, waaronder Linux-opdrachtregelprogramma's voor het converteren van afbeeldingen van het ene formaat naar het andere op de terminal, of een vraag stellen via het commentaargedeelte hieronder.