Lorsque l’on décharge ses photos après une ballade, on récupère un gros volume d’image aussi bien en nombre que en terme de mego-octets. De même avec le téléphones actuels qui capturent des photos avec des définitions très élevées (10 Mpixels, 18Mpixels,…). A part quelques photos qui méritent d’être conservées à une taille maximale, beaucoup d’autres peuvent être réduite en taille et définition pour être archivées soit sur un disque local soit dans un stockage Cloud. Ces images, de taille réduite, pourront aussi être utilisées sur le Web afin d’être publiées dans des blogs, Instagram ou autre site Web
Reduire la taille de ses images une à une est très consommateur en temps donc une procédure automatisée, simple qui va pouvoir traiter des lots (des répertoires entiers) en une passe est la bienvenue.
Pour utiliser ce qui suit il faut au préalable avoir installé imagemagick et ses outils associés comme mogrify.
Sur Ubuntu par exemple voir https://doc.ubuntu-fr.org/imagemagick
sudo apt-get install imagemagick
Une approche simple est de mettre toutes les photos à traiter dans un répertoire (ici TestBatchResize)
Les photographies réduites seront copiées après traitement dans un autre répertoire que l’on va préciser lors de la commande (dans mon exemple TestBatchResize/50)
On va se positionner dans le répertoire à traiter et lancer la commande qui va traiter tous les fichiers du répertoire d’un seul coup (ici 61 fichiers en 22 secondes)
$ cd /home/jm/Images/TestBatchResize $ find . -name \*.jpg | wc -l 61 ====> nombre de fichiers à traiter $ time mogrify -path /home/jm/Images/TestBatchResize/50 -adaptive-resize 50% -quality 60% *.jpg real 0m22.805s user 0m56.455s sys 0m0.535s $ cd /home/jm/Images/TestBatchResize/50 $ find . -name \*.jpg | wc -l 61 ==> nombre de fichiers traités
La commande de traitement mogrify utilise ici trois paramètres
- -path Le répertoire où ranger les fichiers traités
- -adaptive-resize 50% La mise à l’échelle souhaitée ( ici 50% sur la hauteur et la largeur) ==> cela reduit la taille x/y de l’image
- -quality 60% La qualité JPEG suivant la quelle la photographie sera sauvergardée ==> cela réduit l’espace de stockage nécessaire pour l’image (au plus le pourcentatge est faible au plus la qualité baisse)
Les résultats sont spectaculaires (Réduction de la taille du dossier de 280 Mo à moins de 20 Mo)
On peut vérifier sur une image particulière les effets de la commande (la même photographie avant et après traitement)
$ exiftool -filename -filesize -imagesize /home/jm/Images/TestBatchResize/2016_07_28_20160728_110119.jpg File Name : 2016_07_28_20160728_110119.jpg File Size : 3.8 MB Image Size : 5146x2894 $ exiftool -filename -filesize -imagesize /home/jm/Images/TestBatchResize/50/2016_07_28_20160728_110119.jpg File Name : 2016_07_28_20160728_110119.jpg File Size : 534 kB Image Size : 2573x1447
On peut constater que le ratio 50% a bien été appliqué sur la hauteur et la largeur de l’image et que la taille en terme de Mo de cette photographie à bien diminué
Ces ratios et paramètres de commande ne sont donnés ici que comme exemple, on pourra appliquer des valeurs encore plus importantes


On peut voir que la perte de qualité est minime (du moins la qualité preçue sur un écran) pour des photos à archiver pour un gain de place en terme de Mega-octets très intéressant et donc en terme de réduction de coûts de stockage
Référence: Youtube Shane Milton – Image Magick | Batch Resize Images https://www.youtube.com/watch?v=-hPleOyZJr4