2010-07-08 4 views
3

Question: Comment traiter de manière récursive, en utilisant Imagemagik (convertir), un répertoire imbriqué de photos?ImageMagik/UNIX: Comment traiter récursivement un répertoire imbriqué de photos?

je la structure de répertoire suivant:

/ 
..2008/ 
....a.jpg 
....b.jpg 
..2009/ 
.....c.jpg 

Et je veux exécuter la commande ImageMagik suivante sur chaque fichier, pour nettoyer/redimensionner les images, puis enregistrez l'image résultante comme exactement le même nom de fichier en tant que fichier d'origine. Fondamentalement, je veux remplacer le fichier original avec le fichier redimensionné généré créé.

// from unix command line  
convert FILENAME.jpg -resize 100x100 -sharpen 1.5 -strip -profile "*" -sampling-factor 4x1 -quality 80 FILENAME.jpg; 

Répondre

6

Essayez d'utiliser find -exec. Par exemple:

find dirname -type f -iname "*.jpg" -exec convert \{\} -resize 100x100 -sharpen 1.5 -strip -profile "*" -sampling-factor 4x1 -quality 80 \{\} \; 

D'ailleurs, je ne recommande pas l'édition en place. C'est généralement une mauvaise idée, surtout avec le stockage si bon marché. Pourquoi ne pas être en sécurité?

+0

à quel niveau de répertoire devrais-je exécuter cela? /?/2008 /? – TeddyR

+0

et qu'est-ce que 'dirname'? – TeddyR

+0

Lorsque j'exécute la commande ci-dessus, j'obtiens l'erreur suivante: "argument manquant à' -exec '". – TeddyR

Questions connexes