GNU/Linux >> Tutoriels Linux >  >> Linux

4 façons de convertir par lots votre PNG en JPG et vice-versa

En informatique, Batch le traitement est l'exécution d'une série de tâches dans un programme de manière non interactive. Dans ce guide vous proposerons 4 façons simples de convertir par lots plusieurs .PNG images en .JPG et vice-versa en utilisant les outils de ligne de commande Linux.

Nous utiliserons convertir outil de ligne de commande dans tous les exemples, cependant, vous pouvez également utiliser mogrify pour y parvenir.

La syntaxe pour utiliser convert est :

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

Et pour mogrify est :

$ mogrify options input-file

Remarque :Avec mogrifier , le fichier image d'origine est remplacé par le nouveau fichier image par défaut, mais il est possible d'empêcher cela en utilisant certaines options que vous pouvez trouver dans la page de manuel.

Vous trouverez ci-dessous les différentes façons de convertir par lots tous vos .PNG images en .JPG format, si vous voulez convertir .JPG en .PNG , vous pouvez modifier les commandes selon vos besoins.

1. Convertir PNG en JPG à l'aide des commandes "ls" et "xargs"

La commande ls permet de lister tous vos png images et xargs permettent de construire et d'exécuter une conversion commande depuis l'entrée standard pour convertir tous les .png images en .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"'

Explication sur les options utilisées dans la commande ci-dessus.

  1. -1 – flag indique ls pour lister une image par ligne.
  2. -n – spécifie le nombre maximum d'arguments, qui est 1 pour l'affaire.
  3. -c – ordonne à bash d'exécuter la commande donnée.
  4. ${0%.png}.jpg – définit le nom de la nouvelle image convertie, le % sign permet de supprimer l'ancienne extension de fichier.

J'ai utilisé ls -ltr commande pour lister tous les fichiers par date et heure de modification.

De même, vous pouvez utiliser la commande ci-dessus pour convertir tous vos .jpg images en .png en modifiant la commande ci-dessus.

2. Convertir PNG en JPG à l'aide de la commande GNU "Parallel"

GNU Parallèle permet à un utilisateur de créer et d'exécuter des commandes shell à partir d'une entrée standard en parallèle. Assurez-vous que GNU Parallel est installé sur votre système, sinon installez-le à l'aide des commandes appropriées ci-dessous :

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

Une fois parallèle utilitaire installé, vous pouvez exécuter la commande suivante pour convertir tous les fichiers .png images en .jpg format à partir de l'entrée standard.

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

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

Où,

  1. {} – ligne d'entrée qui est une chaîne de remplacement remplacée par une ligne complète lue à partir de la source d'entrée.
  2. {.} – ligne d'entrée moins extension.
  3. ::: - spécifie la source d'entrée, c'est-à-dire la ligne de commande pour l'exemple ci-dessus où *png ou *jpg est l'argument.

Alternativement, vous pouvez également utiliser ls et parallel commandes ensemble pour convertir par lots toutes vos images comme indiqué :

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

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

3. Convertir PNG en JPG à l'aide de la commande "for loop"

Pour éviter l'agitation de l'écriture d'un script shell, vous pouvez exécuter une for loop depuis la ligne de commande comme suit :

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

Description de chaque option utilisée dans la commande ci-dessus :

  1. -c permet l'exécution de l'instruction de boucle for entre guillemets simples.
  2. L'image variable est un compteur pour le nombre d'images dans le répertoire.
  3. Pour chaque opération de conversion, la commande echo informe l'utilisateur qu'une image png a été convertie en jpg format et inversement dans la ligne $image converti en ${image%.png}.jpg ”.
  4. "${image%.png}.jpg" crée le nom de l'image convertie, où % supprime l'extension de l'ancien format d'image.

4. Convertir PNG en JPG en utilisant Shell Script

Si vous ne voulez pas salir votre ligne de commande comme dans l'exemple précédent, écrivez un petit script comme ceci :

Remarque :Échangez de manière appropriée le .png et .jpg extensions comme dans l'exemple ci-dessous pour la conversion d'un format à un autre.

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

Enregistrez-le sous convert.sh et rendez le script exécutable, puis exécutez-le depuis le répertoire contenant vos images.

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

En résumé, nous avons couvert quelques façons importantes de convertir par lots .png images en .jpg format et inversement. Si vous souhaitez optimiser les images, vous pouvez consulter notre guide qui montre comment compresser les images png et jpg sous Linux.

Vous pouvez également partager avec nous toute autre méthode, y compris les outils de ligne de commande Linux pour convertir des images d'un format à un autre sur le terminal, ou poser une question via la section des commentaires ci-dessous.


Linux
  1. Trier Jpg en fonction de la date de création et convertir en PDF unique ?

  2. Utiliser SFTP et SCP

  3. Conversion par lots Linux :Changez la qualité du jpg avec convert mais gardez son nom

  4. Conversion par lots de PNG en JPG sous Linux

  5. Redimensionner et compresser les fichiers PDF par lots

Comment convertir par lots des fichiers PDF sous Linux

Convertir PNG en JPEG, JPEG en PNG à l'aide de la ligne de commande dans Ubuntu

Comment convertir PNG, JPEG en WebP dans Ubuntu ? ( Aussi WebP vers PNG et JPEG )

Comment convertir un fichier PDF en image PNG/JPG sous Linux

Comment convertir par lots des images PNG au format JPG sous Linux

Comment convertir un PDF en images PNG et inversement sous Linux