Recherche de site Web

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


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

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

La syntaxe d'utilisation de convert est :

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

Et pour mogrify c'est :

mogrify options input-file

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

Vous trouverez ci-dessous les différentes manières de convertir par lots toutes vos images .PNG au format .JPG, si vous souhaitez convertir .JPG en . .PNG, vous pouvez modifier les commandes selon vos besoins.

1. Convertissez PNG en JPG à l'aide des commandes « ls » et « xargs »

La commande ls vous permet de lister toutes vos images png et xargs permet de construire et d'exécuter une commande convertir à partir de l'entrée standard pour tout convertir. Images .png vers .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 – l'indicateur indique à ls de lister une image par ligne.
  2. -n – spécifie le nombre maximum d'arguments, qui est 1 pour le cas.
  3. -c – demande à bash d'exécuter la commande donnée.
  4. $ {0%.png}.jpg – définit le nom de la nouvelle image convertie, le signe % permet de supprimer l'ancienne extension de fichier.

J'ai utilisé la commande ls -ltr pour répertorier tous les fichiers par date et heure modifiées.

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

2. Convertissez PNG en JPG à l'aide de la commande GNU « Parallèle »

GNU Parallel 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 l'utilitaire Parallèle installé, vous pouvez exécuter la commande suivante pour convertir toutes les images .png au format .jpg à 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 de saisie moins extension.
  3. ::: – spécifie la source d'entrée, c'est-à-dire la ligne de commande de l'exemple ci-dessus où *png ou *jpg est l'argument.

Alternativement, vous pouvez également utiliser les commandes ls et parallel 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. Convertissez PNG en JPG à l'aide de la commande « for loop »

Pour éviter d'avoir à écrire un script shell, vous pouvez exécuter une boucle for à partir de 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 d'exécuter l'instruction de boucle for entre guillemets simples.
  2. La variable image est un compteur du 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 au format jpg et vice versa dans la ligne $image convertie en & #36 {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 à l'aide d'un script Shell

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

Remarque : intervertissez de manière appropriée les extensions .png et .jpg comme dans l'exemple ci-dessous pour la conversion à partir d'un seul 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 à partir du répertoire contenant vos images.

chmod +x convert.sh
./convert.sh

En résumé, nous avons abordé quelques méthodes importantes pour convertir par lots des images .png au format .jpg et vice-versa. Si vous souhaitez optimiser les images, vous pouvez consulter notre guide qui montre comment compresser des 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 commentaires ci-dessous.