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
– flag indique ls pour lister une image par ligne.-n
– spécifie le nombre maximum d'arguments, qui est 1 pour l'affaire.-c
– ordonne à bash d'exécuter la commande donnée.${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ù,
{}
– 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.{.}
– ligne d'entrée moins extension.:::
- 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 :
- -c permet l'exécution de l'instruction de boucle for entre guillemets simples.
- L'image variable est un compteur pour le nombre d'images dans le répertoire.
- 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 ”.
- "${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.