convertion d'images en images en niveaux de gris

convertion d'images en images en niveaux de gris - Linux et OS Alternatifs

Marsh Posté le 15-05-2005 à 20:44:11    

Voilou, je cherche a convertir des images en images en niveaux de gris, le tout de maniere recursive, j'ai fais des recherche sur le net, le man de imagemagick, et le seule truc que je trouve c'est comment les convertir en monochrome.

Reply

Marsh Posté le 15-05-2005 à 20:44:11   

Reply

Marsh Posté le 15-05-2005 à 21:02:22    

:heink:  dans le man il est indiqué (ligne ~567)que la conversion en niveaux de gris se fait par:
-colorspace GRAY


Message édité par jlighty le 15-05-2005 à 21:02:40
Reply

Marsh Posté le 15-05-2005 à 21:10:19    

grand thx et pour le mode recursif on fait comment ?

Reply

Marsh Posté le 15-05-2005 à 21:24:11    

ca marche pas : je fais  
mogrify share.png -colorspace GRAY  et share.png reste en couleur

Reply

Marsh Posté le 16-05-2005 à 17:38:57    

et avec

Code :
  1. convert share.png -colors 16 -colorspace "GRAY" share_gray.png


pour le récursif un script sh

Reply

Marsh Posté le 22-05-2005 à 16:47:29    

merci mais moi je veux que l'image soit seulement convertie et non que une deuxieme image soit cree, et la je ne vois pas comment integrer ca dans un script sh ou bash recursif en plus


Message édité par flashball le 22-05-2005 à 16:48:07
Reply

Marsh Posté le 22-05-2005 à 16:56:25    

pour obtenir une simple conversion :
convert "$nom" -colors 16 -colorspace "GRAY" "tmp_$nom"
puis  
mv "tmp_$nom" "$nom"
 
il est vrai que la méthode utilise un fichier temp mais comme son nom l'indique, il est temporaire :D

Reply

Marsh Posté le 22-05-2005 à 17:14:49    

dsl mais je sais pas scripter, quelqu'un aurait l'aimable gentillesse de me le faire ?

Reply

Marsh Posté le 22-05-2005 à 17:25:56    

déjà quels sont les chemins des répertoires où tu veux convertir tes images ?

Reply

Marsh Posté le 22-05-2005 à 17:30:56    

voila en lisant le man de sh ca donne ca et ca marche:
 
#!bin/sh
for nom in *  
do  
convert $nom -colorspace GRAY tmp_$nom  
mv tmp_$nom $nom  
done
 
et avec le mode recursif ?
(j'ai un dossier X qui contient des sous dossiers ... avec des images, je voudrais que l'on puisse mettre en argument du script le dossier X pour que tout les images contenu dedans soient converties


Message édité par flashball le 22-05-2005 à 17:31:35
Reply

Marsh Posté le 22-05-2005 à 17:30:56   

Reply

Marsh Posté le 22-05-2005 à 17:39:19    

un truc tout simple :
si tu es sûr que tes repertoires et fichiers ne contienent aucun espace :
utilise la commande find :

Code :
  1. for fichier in `find $mon_dossier -type f -name "*.png"`; do
  2. convert "$fichier" -colorspace GRAY "tmp_$fichier"
  3. mv "tmp_$fichier"  "$fichier"
  4. done;


bien sûr fais un backup des images avant d'exécuter le script on ne sait jamais :D


Message édité par jlighty le 22-05-2005 à 17:40:40
Reply

Marsh Posté le 22-05-2005 à 17:50:21    

:( marche pas : messages  
 

Code :
  1. convert: unable to open image `tmp_./16x16/apps/kdat.png': Aucun fichier ou répertoirede ce type.
  2. mv: ne peut évaluer `tmp_./16x16/apps/kdat.png': Aucun fichier ou répertoire de ce type
  3. convert: unable to open image `tmp_./16x16/apps/kweather.png': Aucun fichier ou répertoire de ce type.
  4. mv: ne peut évaluer `tmp_./16x16/apps/kweather.png': Aucun fichier ou répertoire de cetype
  5. convert: unable to open image `tmp_./16x16/apps/kjobviewer.png': Aucun fichier ou répertoire de ce type.
  6. mv: ne peut évaluer `tmp_./16x16/apps/kjobviewer.png': Aucun fichier ou répertoire de ce type
  7. convert: unable to open image `tmp_./16x16/apps/go.png': Aucun fichier ou répertoire de ce type.
  8. mv: ne peut évaluer `tmp_./16x16/apps/go.png': Aucun fichier ou répertoire de ce type
  9. convert: unable to open image `tmp_./16x16/apps/applixware.png': Aucun fichier ou répertoire de ce type.

........

Reply

Marsh Posté le 22-05-2005 à 18:04:02    

il faut peut être faire un "cd $mon_dossier" avant la boucle for
le script est lancé depuis où ? et qu'as tu mis à la place de $mon_dossier (ou la valeur de $mon_dossier"  ?


Message édité par jlighty le 22-05-2005 à 18:06:34
Reply

Marsh Posté le 22-05-2005 à 18:08:47    

j'ai laissé le sript tel quel et je l'ai lancé avec la commande :
mon_dossier=ledossierquivabien sh notrescript


Message édité par flashball le 22-05-2005 à 18:09:08
Reply

Marsh Posté le 22-05-2005 à 18:11:44    

Code :
  1. #!/bin/sh
  2. mon_dossier=$1
  3. for i.......


comment l'appeler :
sh script <le chemin complet du repertoire>

Reply

Marsh Posté le 22-05-2005 à 18:15:32    

memes erreurs apres modif

Reply

Marsh Posté le 22-05-2005 à 18:17:47    

ca serait pas plus simple de lister tout les sous dossier puis de faire avec un for et par la suite un cd ?

Reply

Marsh Posté le 22-05-2005 à 18:21:07    

la commande find est déjà récursive.
Tu peux me donner les informations suivantes :
- chemin complet du repertoire où sont stockées les images  
- la ligne de commande exacte que tu tapes pour lancer le script
- le contenu du script

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed