J'ai une énorme galerie de 12 Go sur le serveur, pleine d'images dans divers sous-dossiers. Ces fichiers sont trop volumineux et ne sont pas utilisés en pleine résolution. J'ai besoin de redimensionner toutes les images jusqu'à 820 pixels de large (en conservant les proportions). Donc, ma question est - comment puis-je créer une sorte de script d'exploration qui redimensionnerait toutes les images plus grandes que 820px et les sauverait en remplaçant le fichier d'origine?
J'espère que vous pourrez m'aider :-) Merci d'avance.
linux
images
batch-jobs
G-Gore
la source
la source
find . -name "*.jpg" -exec mogrify -resize 820x {} +
les fera tous; si vous ne voulez pas traiter les "moins de 820px", il y a quelques options ici .Réponses:
Les outils ImageMagick convertissent ou mogrifient feront le travail.
Vous pouvez les obtenir via votre gestionnaire de paquets ou le source / rpms ici: http://www.imagemagick.org/script/binary-releases.php#unix
Utilisation de base:
Si vous avez besoin d'une récursivité:
la source
find . -name '*.jpg' -execdir mogrify -resize '820x620>' {} \;
Utilisez
convert
pour faire le travail.convert -resize "1024x768>" origIMG destIMG
redimensionnera origIMG à 1024x768 en conservant les proportions et en ne redimensionnant que si l'image est supérieure à 1024, en stockant la nouvelle image dans destIMG. Après cela, vous pouvez déplacer le destIMG vers l'original.Utilisez une boucle pour parcourir tous vos répertoires ou utilisez
find
.la source
find
?