Convertir des images en masse

Placer les images originales dans un dossier ‘originaux’

Executer un shell de conversion avec la commande convert de imagemagick

réf : https://debian-facile.org/doc:media:imagemagick

https://doc.ubuntu-fr.org/imagemagick

https://www.malekal.com/convert-linux-convertir-redimensionner-des-images/

Exemples : convert-jpg-120×120.sh

ls -1 ./originaux/*.jpg \
| awk -F\/ -v q="'" '{print "convert -resize 120x120 -gravity center ./originaux/"$(NF)" ./120x120/"$(NF)}' \
| sh

Ce batch convertit en 120×120 les images contenues dans le dossier ‘originaux’ vers le dossier ‘120×120’

Attention : il ne faut pas d’espaces dans les noms de fichier ! Et voilà ci-dessous comment supprimer les espaces dans tous noms de fichiers en 1 commande 😉

find . -type f -exec rename 's/\ /-/g' '{}' \;

Conversion de 1700 images pour Paulo (migration PrestaShop) en 800 pixels minimum :

  1. Conversion en 800 pixels en lot avec de nouveaux noms de fichiers (en 1 commande)
  2. Vérification du format des images
  3. Création d’un dossier de destination
  4. Transfert des images transformées dans ce dossier
  5. On pourra compresser ce dossier pour l’envoyer par mail
$ ls -1 *.jpg | xargs -n 1 bash -c 'convert -resize 800x800^ "$0" "${0%.jpg}-800pix.jpg"'
$ identify *
$ mkdir 800pix-Minimum
$ ls -1 *pix.jpg | xargs -n 1 bash -c 'mv "$0" 800pix-Minimum'