web-dev-qa-db-fra.com

Comment puis-je convertir par lots des images au format n / b tout en préservant la structure du dossier

Je souhaite traiter des images par lot, mais je souhaite effectuer une tâche très spécifique.

  1. Je ne veux pas changer le type d'image
  2. Je veux les faire en noir et blanc
  3. Je veux qu'il crée/préserve les images et la structure des sous-dossiers

Je l’ai fait dans Photoshop mais il ne conservait pas les dossiers et le contenu des sous-dossiers, il jetait simplement tous les fichiers convertis dans un seul répertoire.

Mon seul espoir est Linux: D

Merci d'avance!

Vous pouvez voir différentes discussions à ce sujet ici, mais Basharat Sial a travaillé pour moi

http://ubuntuforums.org/showthread.php?t=2143992

6
Levan

Nous pouvons utiliser la commande convert pour convertir les images en noir et blanc:

convert -colorspace GRAY image.png b-w_image.png

image.png est l'image d'entrée et b-w_image.png est l'image imprimée.

En combinant cette commande avec find, nous pouvons créer une doublure bash pour convertir toutes les images trouvées dans le répertoire parent.

Comment:
Ouvrez le terminal en appuyant sur Ctrl+Alt+T, cd dans le répertoire parent/main et exécutez la commande suivante:

for img in $(find . -iname '*.png'); do echo -n "Converting $img"; convert -colorspace GRAY $img $img && echo ' [Done]'; done

Il convertira et écrasera toutes les images du répertoire parent. Je suggérerai de le tester sur certaines images temporaires et de l'exécuter sur des images réelles si vous êtes satisfait des résultats.

10
Basharat Sialvi

- monochrome est une option si vous voulez binaire en noir et blanc (1bit par pixel).

Il utilise un dithering intelligent et génère une sortie très visible:

convert -monochrome in.png out.png

Avant :

enter image description here

Après:

enter image description here

Pour maintenir la structure de répertoires, vous devrez le script comme mentionné par Basharat .