web-dev-qa-db-fra.com

Je voudrais redimensionner des images par lots dans un terminal

J'ai environ 500 images à redimensionner, je ne vais pas le faire avec Gimp ... une solution de terminal me conviendrait mieux. Sur Ubuntu 14.04.

J'ai lu this question sur stackoverflow (d'abord posté la question mais quelqu'un a commencé à dire que stackoverflow n'est pas le meilleur endroit pour poser cette question) à propos du redimensionnement par lot en utilisant Imagemagic et je suppose que c'est en partie ce que j'ai suis après (je me fiche de la partie récursive). J'ai besoin de redimensionner toutes les images pour que le plus long côté de l'image soit un nombre défini de pixels. Il existe des images dont le côté le plus long correspond à la largeur de l'image et d'autres à la hauteur.

Je suppose que quelque chose dans l'ordre de:

find "*.jpg" | xargs convert -resize ...

Toute aide serait appréciée

3
Sl4rtib4rtf4st

Si vous n'avez pas besoin de récursion, vous pouvez utiliser l'outil de traitement par lots d'Imagemagick, mogrify. Cela prend la plupart des mêmes arguments. Pour réduire la taille maximale à 300px, nous pouvons offrir -resize "300x300>". Pour des raisons de sécurité, je souhaite également enregistrer les nouvelles images dans un sous-répertoire plutôt que de les écraser.

# assuming you're in the directory of images
mkdir resized
mogrify -resize "300x300>" -path resized *.jpg
4
Oli