39 votes

Redimensionner des images par lots dans un nouveau dossier à l'aide d'ImageMagick

J'ai un dossier d'images sur 4MB - appelons ce dossier dsc_big/. Je voudrais utiliser convert -define jpeg:extent=2MB pour les convertir en vertu de l' 2MB et copiez dsc_big/* pour un dossier dsc_small/ qui existe déjà.

J'ai essayé d' convert dsc_big/* -define jpeg:extent=2MB dsc_small/ mais qui produit des images appelées -0, -1, et ainsi de suite.

Que dois-je faire?

EDIT: je ne comprends pas le vote serré; c' est un problème de programmation, il a un peu de code, a ImageMagick (qui est un "outil couramment utilisé par les programmeurs" [FAQ]), et il est pratique. Pourquoi est-il hors sujet? Pour ceux qui ne connaissent pas la FAQ: http://stackoverflow.com/faq

51voto

Eduardo Ivanec Points 6244

convert est conçu pour gérer un seul fichier d'entrée pour autant que je peux dire, même si je dois avouer que je ne comprends pas le résultat que vous obtenez. mogrify est mieux adapté pour le traitement par lots dans le style suivant:

mogrify -path ../dsc_small -define jpeg:extent=2MB dsc_big/*

Mais honnêtement, je considère qu'il est dangereux pour un usage général (il va remplacer les images d'origine si vous oubliez que -path) j'ai donc toujours utiliser convert couplé avec une boucle for pour cela:

for file in dsc_big/*; do convert $file -define jpeg:extent=2MB dsc_small/`basename $file`; done

L' basename appel n'est pas nécessaire si vous êtes à la transformation des fichiers dans le répertoire courant.

1voto

Danish Points 1392

Même si c'est une vieille question, mais je suis l'ajout de cette réponse pour le bénéfice de quelqu'un d'autre qui tombe sur cette.

J'ai eu exactement le même problème, et d'être découragé par l'utilisation d' mogrify, j'ai écrit un petit Python utilitaire appelé easymagick pour rendre ce processus plus facile, tandis que l'interne à l'aide de l' convert commande.

Veuillez noter, c'est toujours un travail en cours. Je vais apprécier tout type de commentaires que je peux obtenir.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X