GNU/Linux >> Tutoriels Linux >  >> Linux

Conversion par lots de PNG en JPG sous Linux

Votre meilleur pari serait d'utiliser ImageMagick.

Je ne suis pas un expert de l'utilisation réelle, mais je sais que vous pouvez pratiquement tout faire en matière d'image avec cela !

Un exemple est :

convert image.png image.jpg

qui conservera l'original ainsi que la création de l'image convertie.

En ce qui concerne la conversion par lots, je pense que vous devez utiliser l'outil Mogrify qui fait partie d'ImageMagick.

Gardez à l'esprit que cela écrase les anciennes images.

La commande est :

mogrify -format jpg *.png

J'ai quelques solutions supplémentaires.

La solution la plus simple est comme la plupart déjà postée. Une simple boucle for bash.

for i in *.png ; do convert "$i" "${i%.*}.jpg" ; done

Pour une raison quelconque, j'ai tendance à éviter les boucles dans bash, voici donc une approche xargs plus unixy, utilisant bash pour la modification des noms.

ls -1 *.png | xargs -n 1 bash -c 'convert "$0" "${0%.*}.jpg"'

Celui que j'utilise. Il utilise GNU Parallel pour exécuter plusieurs tâches à la fois, ce qui vous donne une amélioration des performances. Il est installé par défaut sur de nombreux systèmes et se trouve presque définitivement dans votre dépôt (c'est un bon programme à avoir sous la main).

ls -1 *.png | parallel convert '{}' '{.}.jpg'

Le nombre de tâches par défaut correspond au nombre de cœurs de processeur dont vous disposez. J'ai trouvé une meilleure utilisation du processeur en utilisant 3 tâches sur mon système double cœur.

ls -1 *.png | parallel -j 3 convert '{}' '{.}.jpg'

Et si vous voulez des statistiques (une ETA, des travaux terminés, un temps moyen par travail...)

ls -1 *.png | parallel --eta convert '{}' '{.}.jpg'

Il existe également une syntaxe alternative si vous utilisez GNU Parallel.

parallel convert '{}' '{.}.jpg' ::: *.png

Et une syntaxe similaire pour certaines autres versions (y compris debian).

parallel convert '{}' '{.}.jpg' -- *.png

Le convert La commande trouvée sur de nombreuses distributions Linux est installée dans le cadre de la suite ImageMagick. Voici le code bash pour exécuter convert sur tous les fichiers PNG d'un répertoire et évitez ce problème de double extension :

for img in *.png; do
    filename=${img%.*}
    convert "$filename.png" "$filename.jpg"
done

Linux
  1. image Linux du presse-papiers

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

  3. Convertir des images Webp en PNG par la commande Linux

  4. convertir pdf en 2up sur linux

  5. Convertir un tas de fichiers BMP en JPEG sous Linux

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 un fichier PDF en image PNG/JPG sous Linux

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

Comment convertir une page Web en PDF sous Linux

Comment convertir un PDF en images PNG et inversement sous Linux