Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 17/05/2006, à 10:32

Isaric

Re : [Résolu] Mon_premier Sh pour modifier des images

Oui cep cela marche bien, pour renommer merci.

Mon problème c'est lorsque je rajoute la partie
#*** rajout d'un préfix de toutes les images en jpeg ***
en bas du script que j'ai un message d'erreur. Cela ne ma rajoute pas le préfixe "Mon_Pref-".
Je vois bien dans le terminal la ligne "rajout...", puis l'erreur ...

...
rajout d'un préfix à a_d_0.jpg
Bareword "a_d_0" not allowed while "strict subs" in use at (eval 1) line 1.
Bareword "jpg" not allowed while "strict subs" in use at (eval 1) line 1.

Script:

#!/bin/bash

#---------------------------------
#*** Modification de format PNG ***
#---------------------------------
mogrify -format jpg *.png

#--------------------------------------------------
#*** Renommer par lot les accents et les blancs ***
#--------------------------------------------------

for i in * ; do
    nom=`echo $i | sed -e s/\ /\_/g |
sed -e s/\à/\a/g |
sed -e s/\ç/\ç/g |
sed -e s/\é/\e/g |
sed -e s/\é/\e/g |
sed -e s/\è/\e/g |
sed -e s/\ê/\e/g |
sed -e s/\ë/\e/g |
sed -e s/\î/\i/g |
sed -e s/\ï/\i/g |
sed -e s/\ô/\o/g |
sed -e s/\ö/\o/g |
sed -e s/\ù/\u/g |
sed -e s/\ü/\u/g |
sed -e s/\ /\_/g`
mv "$i" "$nom"
done 


#---------------------------------
#*** Effacement des fichiers PNG ***
#---------------------------------

for i in `ls *.png`
do
rm $i
done


#---------------------------------
#*** Conversion par lot Dimension-max : 1600x1200 de toutes les images en jpeg ***
#---------------------------------
mogrify -resize 1600x1200 *.jpg


#-------------------------------------------------------------
#*** rajout d'un préfix de toutes les images en jpeg ***
#-------------------------------------------------------------
IMAGES_PREFIX="Mon_Pref-"

for i in `ls *.jpg`
do
        FILENAME=`basename $i`
        echo "rajout d'un préfix à" $FILENAME
        rename  $FILENAME $IMAGES_PREFIX$FILENAME
done

"Être bahá'í signifie simplement aimer la terre toute entière, aimer l'humanité et essayer de la servir, travailler pour la paix universelle et la famille humaine" 'Abdul'l-Bahá
"Vouloir s'ouvrir aux autres n'est pas une preuve de faiblesse, c'est une preuve d'intelligence"  Matthieu Ricard.

Hors ligne

#27 Le 17/05/2006, à 10:44

bobuse

Re : [Résolu] Mon_premier Sh pour modifier des images

Isaric a écrit :
bobuse a écrit :

C'est quoi c'te blague hmm
Moi j'ai jamais eu de problème !

Digikam ne marche pas sur Dapper

Je viens de faire une mise à jour Dapper... autre exemple une photo sur /home/isaric/Desktop
--> clic droit--> ouvrir avec Digikam et cela ne marche pas chez moi !

Attention, digikam n'est pas un éditeur d'image, c'est un gestionnaire d'albums.
Donc, pourl'utiliser, tu configure tes répertoires contenant des images, et ensuite tu le lances pour pouvoir manipuler tes images.

Les manipulations d'images sont effectuées par les outils KIPI.
Si c'est juste ces outils qui t'intéressent, essaye gwenview smile
Il ne fait pas de gestion avancée d'albums comme digikam, mais permet de parcourir directement des répertoires d'images, tout en proposant les même fonctionnalités de traitement d'image grâce à KIPI.

Après, si tu veux jouer avec bash ... wink

Hors ligne

#28 Le 17/05/2006, à 11:12

Isaric

Re : [Résolu] Mon_premier Sh pour modifier des images

bobuse merci.
J'utilisais digikam sous breezy et cela marchait bien pour le traitement par lot.
Sous Dapper, il ne marche pas ... encore !

J'ai Digikam, Djview, Gimp, GQview, showFoto et gThump d'installés,
Mais effectivement, je n'ai pas essayé gwenview.
Chacun des programmes du dessus ont leur intérét pour moi, simplicité, traitement, découpage, diaporama ou retouches... et plusieurs d'entre eux sont nécessaires.
Je regarde aussi :
traitement d'image en série
Ils sont complémentaires, mais c'est difficile de les utiliser tous en même temps. Comme j'utilisais digikam pour le traitement par lot et qu'il ne marche pas, j'ai essayé gThumb, il renomme bien par lot (une fois qu'on a trouvé l'astuce) mais ne marche pas en redimenssionnement.

Ma solution pour avoir la chance d'éviter des disfonctionnements (du à des mises à jour ou l'utilisation d'une version instable comme ici Dapper), c'est d'avoir un programme simple pour mes modifs les plus classiques. C'est pourquoi j'essaie le sh, mais là encore je bloque sur rename

Remaque: je viens de faire un essai gwenview même problème que Digikam sur dapper ! neutral

Dernière modification par Isaric (Le 17/05/2006, à 11:22)


"Être bahá'í signifie simplement aimer la terre toute entière, aimer l'humanité et essayer de la servir, travailler pour la paix universelle et la famille humaine" 'Abdul'l-Bahá
"Vouloir s'ouvrir aux autres n'est pas une preuve de faiblesse, c'est une preuve d'intelligence"  Matthieu Ricard.

Hors ligne

#29 Le 17/05/2006, à 11:29

bertrand0

Re : [Résolu] Mon_premier Sh pour modifier des images

Utilise mv à la place de rename. (le premier argument de rename est un expression perl, pas un nom de fichier !)

EDIT: Sinon, à la place de ta boucle, tu peux utiliser find:
find -name "*.jpg" -exec mv {} "$PREFIX"{} \;

EDIT: Si tu tiens à utiliser sed, la commande de remplacement de caractères est y, par exemple:
ls | sed "y/àéù /aeu_/"

Dernière modification par bertrand0 (Le 17/05/2006, à 11:42)


Ceux qui écrivent comme ils parlent, quoiqu'ils parlent très bien, écrivent mal.
                                                            Buffon, Discours sur le style

Hors ligne

#30 Le 17/05/2006, à 13:35

bobuse

Re : [Résolu] Mon_premier Sh pour modifier des images

Isaric> ce problème avec digikam et gwenview doit venir de gnome, car je suis sous kubuntu dapper et vraiment aucun soucis ...

Hors ligne

#31 Le 17/05/2006, à 19:04

Isaric

Re : [Résolu] Mon_premier Sh pour modifier des images

Chez moi il n'y a pas de changement

isaric@acer:~/Desktop/Photo/Essais$ ls | sed "y/àçéèêëÎïööùü /aceeeeiioouu_/"
a_d_0.jpg
eîôo_A.jpg
Mogriphy-1600x1200-Rename-img
Mogriphy-1600x1200-Rename-img~
p_0_1.jpg
isaric@acer:~/Desktop/Photo/Essais$ ls
a d 0.jpg   Mogriphy-1600x1200-Rename-img   p 0_1.jpg
éîôö A.jpg  Mogriphy-1600x1200-Rename-img~
isaric@acer:~/Desktop/Photo/Essais$

sauf le p_0_1.jpg en p 0_1.jpg

Dernière modification par Isaric (Le 17/05/2006, à 19:06)


"Être bahá'í signifie simplement aimer la terre toute entière, aimer l'humanité et essayer de la servir, travailler pour la paix universelle et la famille humaine" 'Abdul'l-Bahá
"Vouloir s'ouvrir aux autres n'est pas une preuve de faiblesse, c'est une preuve d'intelligence"  Matthieu Ricard.

Hors ligne

#32 Le 17/05/2006, à 19:08

bertrand0

Re : [Résolu] Mon_premier Sh pour modifier des images

Ben si ça marche, le î et ô restent parce que tu  ne les a pas mis dans le sed, c'est tout....


Ceux qui écrivent comme ils parlent, quoiqu'ils parlent très bien, écrivent mal.
                                                            Buffon, Discours sur le style

Hors ligne

#33 Le 17/05/2006, à 19:43

Isaric

Re : [Résolu] Mon_premier Sh pour modifier des images

isaric@acer:~/Desktop/Photo/Essais$ ls
a d 0.jpg   Mogriphy-1600x1200-Rename-img   p 0_1.png
éîôö A.jpg  Mogriphy-1600x1200-Rename-img~
isaric@acer:~/Desktop/Photo/Essais$ ls | sed "y/àçéèêëîïôöùü /aceeeeiioouu_/"
a_d_0.jpg
eioo_A.jpg
Mogriphy-1600x1200-Rename-img
Mogriphy-1600x1200-Rename-img~
p_0_1.png
isaric@acer:~/Desktop/Photo/Essais$ ls
a d 0.jpg   Mogriphy-1600x1200-Rename-img   p 0_1.png
éîôö A.jpg  Mogriphy-1600x1200-Rename-img~
isaric@acer:~/Desktop/Photo/Essais$

Ben oui, mais cela ne se fixe pas !


remarque : j'ai refait un essai (après mise à jour) avec gwenview  et cela semble marcher maintenant !

Dernière modification par Isaric (Le 17/05/2006, à 19:45)


"Être bahá'í signifie simplement aimer la terre toute entière, aimer l'humanité et essayer de la servir, travailler pour la paix universelle et la famille humaine" 'Abdul'l-Bahá
"Vouloir s'ouvrir aux autres n'est pas une preuve de faiblesse, c'est une preuve d'intelligence"  Matthieu Ricard.

Hors ligne

#34 Le 17/05/2006, à 20:01

bertrand0

Re : [Résolu] Mon_premier Sh pour modifier des images

On s'est mal compris, ça c'était juste un exemple. Je voulais dire que dans ton script tu pouvais remplacer toute ta pâtée de commandes sed par une unique commande. Ou alors dans l'exemple que j'avais donné avec recode tu peux remplacer l'appel à recode par cet appel à sed.

EDIT: Si tu veux tout faire en une commande, en voilà une, avec recode:

find -maxdepth 1 -name "*.jpg" -exec sh -c "mv -i \"{}\" \"\$(echo {}| recode -f ..flat)\"" \;

ou encore, avec sed:

find -maxdepth 1 -name "*.jpg" -exec sh -c "mv -i \"{}\" \"\$(echo {}| sed \"y/àçéèêëîïôöùü /aceeeeiioouu_/\")\"" \;

EDIT: J'ai corrigé pour les espaces, il manquait des guillemets. Mais comme dit cep plus bas, si tu n'y comprend rien, il vaut mieux commencer avec des commandes plus simples...

Dernière modification par bertrand0 (Le 18/05/2006, à 09:55)


Ceux qui écrivent comme ils parlent, quoiqu'ils parlent très bien, écrivent mal.
                                                            Buffon, Discours sur le style

Hors ligne

#35 Le 17/05/2006, à 20:17

Isaric

Re : [Résolu] Mon_premier Sh pour modifier des images

Oulà ! Je n'y comprends pas grand chose

isaric@acer:~/Desktop/Photo/Essais$ ls
a d 0.jpg  éîôö A.jpg  Ess-Mogriphy-1600x1200-Rename-img  p 0_1.png
isaric@acer:~/Desktop/Photo/Essais$ find -maxdepth 1 -name "*.jpg" -exec sh -c "mv -i {} \$(echo {}| recode -f ..flat)" \;
sh: recode: command not found
mv: la cible `0.jpg' n'est pas un répertoire
sh: recode: command not found
mv: ne peut évaluer `./éîôö': Aucun fichier ou répertoire de ce type
isaric@acer:~/Desktop/Photo/Essais$ ls a d 0.jpg  éîôö A.jpg  Ess-Mogriphy-1600x1200-Rename-img  p 0_1.png
isaric@acer:~/Desktop/Photo/Essais$ find -maxdepth 1 -name "*.jpg" -exec sh -c "mv -i {} \$(echo {}| sed \"y/àçéèêëîïôöùü /aceeeeiioouu_/\")" \;
mv: la cible `./a_d_0.jpg' n'est pas un répertoire
mv: la cible `./eioo_A.jpg' n'est pas un répertoire
isaric@acer:~/Desktop/Photo/Essais$ ls 
a d 0.jpg  éîôö A.jpg  Ess-Mogriphy-1600x1200-Rename-img  p 0_1.png
isaric@acer:~/Desktop/Photo/Essais$

Au final, les fichiers n'ont pas changés de nom !

Dernière modification par Isaric (Le 17/05/2006, à 20:19)


"Être bahá'í signifie simplement aimer la terre toute entière, aimer l'humanité et essayer de la servir, travailler pour la paix universelle et la famille humaine" 'Abdul'l-Bahá
"Vouloir s'ouvrir aux autres n'est pas une preuve de faiblesse, c'est une preuve d'intelligence"  Matthieu Ricard.

Hors ligne

#36 Le 17/05/2006, à 21:01

cep_

Re : [Résolu] Mon_premier Sh pour modifier des images

Isaric, si tu me permets, je vais te donner un conseil. Tu devrais commencer par de scripts simples pour te familiariser avec bash.
Pour ce que tu veux faire, du moins une partie, les lignes utiles t'ont déjà été données (poste 12 par exemple et plus haut aussi). Mais là, comme tu n'as pas les bases, tu reparts à zéro en ajoutant des commandes sans cesse, qui ne sont pas forcément complettes, ou même contradictoires, et parfois ne prennent pas les fichiers avec des blancs composés d'espaces aussi.

Le plus simple serait tout de même de t'orienter vers soft clés en mains, et te familiariser aussi ave le bash avant de passer aux mélanges avec sed et compagnie.

J'espère que tu ne m'en voudras pas pour ces lignes wink

Cordialement.
cep

#37 Le 17/05/2006, à 21:24

Isaric

Re : [Résolu] Mon_premier Sh pour modifier des images

Non cep_, je t'en veux absolument pas, c'est déjà très sympathique tes infos.
je vais jetter un oeil dans

isaric@acer:~$ man bash

du paquet de manpages-fr.


"Être bahá'í signifie simplement aimer la terre toute entière, aimer l'humanité et essayer de la servir, travailler pour la paix universelle et la famille humaine" 'Abdul'l-Bahá
"Vouloir s'ouvrir aux autres n'est pas une preuve de faiblesse, c'est une preuve d'intelligence"  Matthieu Ricard.

Hors ligne

#38 Le 17/05/2006, à 22:38

cep_

Re : [Résolu] Mon_premier Sh pour modifier des images

Ok Isaric.

Alors, pour décomposer les commandes, même si cela oblige à faire plusieurs fois la même chose, après avoir supprimé tous les accents et les espaces blancs dans les noms de fichies, comme vu au poste #12, si tu veux ajouter dans le répertoire courant un préfixe aux noms de fichiers tu pourrais faire par exemple :

for i in *.jpg ; do mv $i  "ps"$i ; done

Si l'on décompose la ligne tous les fichiers avec l'extension jpg seront traîtés par mv qui ajoutera l'extension ps aux noms des fichiers. Si tu veux mettre une autre extension ou une date par exemple tu modifies la valeur ps entre guillemets. Il y a d'autres méthodes  plus évoluées, bien sûr.

Et ensuite tu feras les conversions de taille avec mogrify ou autre. Tu peux aussi ajouter le préfixe après avoir fait les conversions.

Deux adresses pour ImageMagick :

http://www.imagemagick.org/script/index.php
http://www.xrings.net/xrings/article.php3?id_article=192

#39 Le 18/05/2006, à 12:25

bertrand0

Re : [Résolu] Mon_premier Sh pour modifier des images

cep_ a écrit :
bertrand0 a écrit :

Sinon, la méthode la plus efficace à mon avis pour virer les accents, c'est d'utiliser recode, ...

Sur les noms de fichiers ?

@cep oui, l'idée de l'exemple que j'ai présenté au tout début était de minimiser le nombre de process créés, donc un seul appel à recode sur la sortie de ls, puis reconstitution de lignes de commande avec paste et puis un pipe vers un shell pour les mv.
Mais finalement, le nombre de fichiers à traiter n'a pas l'air si important que ça, alors la commande find que j'ai mise plus haut fait aussi l'affaire (en ajoutant les quelques guillemets que j'ai oubliés...). Bon, elle est un peu compliquée, mais ça force à interpréter l'ordre dans lequel se font les remplacements de chaîne, et je pense que c'est plutôt pédagogique....non?
Ceci dit, je ne donne que des bouts de code parce que l'idée est quand même d'aller voir dans le man pour comprendre.


Ceux qui écrivent comme ils parlent, quoiqu'ils parlent très bien, écrivent mal.
                                                            Buffon, Discours sur le style

Hors ligne

#40 Le 18/05/2006, à 12:49

cep_

Re : [Résolu] Mon_premier Sh pour modifier des images

@ bertrand0 : Peut-être. Je ne connais pas recode, utilisant iconv. Mais plutôt pour le contenu.
Pour les noms, un simple sed ou tr.

Cordialement.
cep

#41 Le 22/05/2006, à 14:21

Isaric

Re : [Résolu] Mon_premier Sh pour modifier des images

Merci cep_

Cela donne :

for i in * ; do
    nom=`echo $i | sed -e s/\ /\_/g |
sed -e s/\à/\a/g |
sed -e s/\ç/\c/g |
sed -e s/\é/\e/g |
sed -e s/\è/\e/g |
sed -e s/\ê/\e/g |
sed -e s/\ë/\e/g |
sed -e s/\î/\i/g |
sed -e s/\ï/\i/g |
sed -e s/\ô/\o/g |
sed -e s/\ö/\o/g |
sed -e s/\ù/\u/g |
sed -e s/\ü/\u/g`
mv "$i" "$nom"
done 


#---------------------------------
#*** Effacement des fichiers PNG ***
#---------------------------------

for i in `ls *.png`
do
rm $i
done


#---------------------------------
#*** Conversion par lot Dimension-max : 1600x1200 de toutes les images en jpeg ***
#---------------------------------
mogrify -resize 1600x1200 *.jpg


#-------------------------------------------------------------
#*** rajout d'un préfix de toutes les images en jpeg ***
#-------------------------------------------------------------

for i in *.jpg ; 
	do
	FILENAME=`basename $i`
	echo "rajout d'un préfix à" $FILENAME 
	mv $i  "Mon_Pref-"$i ; 
done

Super smile


"Être bahá'í signifie simplement aimer la terre toute entière, aimer l'humanité et essayer de la servir, travailler pour la paix universelle et la famille humaine" 'Abdul'l-Bahá
"Vouloir s'ouvrir aux autres n'est pas une preuve de faiblesse, c'est une preuve d'intelligence"  Matthieu Ricard.

Hors ligne