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.

#1 Le 03/02/2008, à 16:37

soupaloignon

Script pour bidouiller les metadonnées exif : votre avis ?

Bonjour,

Pour mon usage perso je viens de construire un petit script Nautilus me permettant de créer/modifier des données EXIF de photos par lots. Le problème de départ était que les photos scannées ne possèdent pas de données EXIF, et j'avais besoin de ces données pour classer par dates les photos.

Puis petit à  petit s'y sont greffées d'autres fonctionnalités.

Pour ce script j'aimerai avoir votre avis sur sa construction (genre si il n'y a pas d'erreur de codage flagrante, ou des choses à  améliorer/simplifier), et j'aurai quelques questions précises sur certaines fonctionnalités.



Pour le moment ce script a les fonctionnalités suivantes :

Créer une date et un horaire: Utile pour les photos scannées qui, nativement, ne possédent pas de données exif de date et d'heure, ce qui est handicapant pour la gestion des photos dans Digikam par exemple

Modifier une date et un horaire existant: Les données exif de date et d'heure existent, mais pour une raison quelconque sont fausses. Vous pouvez les modifier avec cette option. Attention, cela modifie la date ET l'heure.

Augmenter ou diminuer les heures: Pratique dans le cas o๠l'APN ne gére pas l'heure d'été/hiver. Cette option ne va modifier QUE l'heure.

Afficher les données exif d'une photo: Tout est dans le titre wink

Changer la casse et l'extension: renomme les extensions de majuscules EN minuscules, et de JPG JEPG jepg EN jpg"



Futures fonctionnalités :

Effacer totalement les données EXIF
exiv2 -d a *.jpg

Effacer totalement les données ITPC
? en test pour voir si elles sont effacées avec la commande ci dessus

Lister les données IPTC (dans une fenêtre zenity, comme pour les infos EXIF)
?


Le script

#!/bin/bash
#############################################################
# www.soupaloignon.net
# 03/02/2008
# Script permettant de créer ou modifier les données exif de date et d'heure
# Version : 0.1
# Le fil qui est au départ de ce script : http://forum.ubuntu-fr.org/viewtopic.php?id=6396
#############################################################




titre="Données exif : Création et modification"
texte="Choisir l'action à  exécuter"
#extension='*.jpg *.JPG *.jepg *.JPEG'


#############################################################
# Pour gérer les noms de fichiers contenant des espaces
#############################################################
IFS=$'\n'



#############################################################
# Vérifier si au moins 1 fichier est sélectionné
#############################################################
function control ()
{
if [[ "$?" != "0" ]]; then
 exit
fi
}



#############################################################
# Affichage de la liste des opérations possibles
#############################################################
depart=`zenity --list --width=400 --height=310 --title="$titre" --text="$texte" --column "" "Créer une date et un horaire" "Modifier une date et un horaire existant" "Augmenter ou diminuer les heures" "Afficher les données exif d'une photo" "Changer la casse et l'extension" "" "Quelques précisions sur ce script"`
control



#############################################################
# Opération : Creer une date et un horaire
#############################################################
 if [ "$depart" = "Créer une date et un horaire" ]; then
## Entrer la date
    DATE=$(zenity --entry --width=300 --height=150 --title="Date" --entry-text="2010:10:10" --text="Entrez la date dans un format AAAA:MM:JJ" )
         if [ "${PIPESTATUS[0]}" != "0" ]; then
           exit
         fi

## Entrer l'heure
    HEURE=$(zenity --entry --width=300 --height=150 --title="Heure" --entry-text="10:10:10" --text="Entrez l'heure dans un format HH:MM:SS" )
         if [ "${PIPESTATUS[0]}" != "0" ]; then
           exit
         fi

exiv2 -M"set Exif.Image.DateTime $DATE $HEURE" -M"set Exif.Photo.DateTimeOriginal $DATE $HEURE" -M"set Exif.Photo.DateTimeDigitized $DATE $HEURE" *.jpg *.JPG *.jpeg *.JPEG




#############################################################
# Opération : Modifier une date et un horaire existant
#############################################################

# faire un test de verification de la presence de données exif ou pas ?
 elif [ "$depart" = "Modifier une date et un horaire existant" ]; then
## Entrer la nouvelle date
    NEW_DATE=$(zenity --entry --width=300 --height=150 --title="Modifier la date" --entry-text="2010:10:10" --text="Entrez la nouvelle date dans un format AAAA:MM:JJ" )
         if [ "${PIPESTATUS[0]}" != "0" ]; then
           exit
         fi

## Entrer l'heure
    NEW_HEURE=$(zenity --entry --width=300 --height=150 --title="Modifier l'heure" --entry-text="11:11:11" --text="Entrez la nouvelle heure dans un format HH:MM:SS" )
         if [ "${PIPESTATUS[0]}" != "0" ]; then
           exit
         fi
jhead -ts$NEW_DATE-$NEW_HEURE *.jpg *.JPG *.jpeg *.JPEG



#############################################################
# Opération : Augmenter ou diminuer uniquement les heures
#############################################################
elif [ "$depart" = "Augmenter ou diminuer les heures" ]; then
## Entrer la nouvelle heure sous la forme -1:00 ou +1:00
    NEW_HEURE2=$(zenity --entry --width=300 --height=150 --title="Modifier l'heure" --entry-text="+4:00" --text="Entrez la nouvelle heure dans un format +4:00 ou -4:00" )
         if [ "${PIPESTATUS[0]}" != "0" ]; then
           exit
         fi
jhead -ta$NEW_HEURE2 *.jpg *.JPG *.jpeg *.JPEG



#############################################################
# Opération : Afficher les données exif
#############################################################
elif [ "$depart" = "Afficher les données exif d'une photo" ]; then
zenity --info --text " `exiv2 "$1" `"
         if [ "${PIPESTATUS[0]}" != "0" ]; then
           exit
         fi


#############################################################
# Opération : Changer la casse et l'extension
#############################################################
elif [ "$depart" = "Changer la casse et l'extension" ]; then
       
ls -d *.JPG | sed 's/\(.*\).JPG$/mv "&" "\1.jpg"/' | sh
ls -d *.JPEG | sed 's/\(.*\).JPEG$/mv "&" "\1.jpg"/' | sh
ls -d *.jpeg | sed 's/\(.*\).jepg$/mv "&" "\1.jpg"/' | sh
exit
fi

#############################################################
# Opération : Précisions sur le script
#############################################################
## Informations
elif [ "$depart" = "Quelques précisions sur ce script" ]; then
zenity --info --title="Informations" --text="Dépendance : zenity jhead exiv2.

Créer une date et un horaire: Utile pour les photos scannées qui, nativement, ne possédent pas de données exif de date et d'heure, ce qui est handicapant pour la gestion des photos dans Digikam par exemple

Modifier une date et un horaire existant : Les données exif de date et d'heure existent, mais pour une raison quelconque sont fausses. Vous pouvez les modifier avec cette option. Attention, cela modifie la date ET l'heure.

Augmenter ou diminuer les heures : Pratique dans le cas o๠l'APN ne gére pas l'heure d'été/hiver. Cette option ne va modifier QUE l'heure.

Afficher les données exif d'une photo : Tout est dans le titre ;)

Changer la casse et l'extension : renome les extensions de majuscules EN minuscules, et de JPG JEPG jepg EN jpg"
###
# comment garder la précédente fenêtre ouverte, ou comment revenir à  la fenêtre précédente en fermant celle-ci
fi

Les questions sont les suivantes :

1/ Remarques générales. Est ce qu'il n'y a pas d'erreur de codage flagrante, ou des choses à  améliorer/simplifier ?

2/ A plusieurs endroits le script travaille sur des fichiers avec des extensions "*.jpg *.JPG *.jpeg *.JPEG". J'ai essayé de mettre une variable, mais cela n'a pas fonctionné. SI vous avez une idée la dessus.
(J'ai essayé : #extension='*.jpg *.JPG *.jepg *.JPEG' et #extension="*.jpg *.JPG *.jepg *.JPEG"
avec $extension pour l'appeler)

3/ Lors du 1er lancement du script une fenêtre s'ouvre avec les différentes actions possibles. Une de ces actions est une info zenity sur ce que fait le script. Problème, lorsque l'on ferme cette fenêtre d'infos, la fenêtre initiale n'est plus là . Il faut relancer le script pour l'avoir, ce qui est un peu lourd.
Est ce qu'il y aurait un moyen pour que cette 1ere fenêtre soit toujours affichée (donc la fenêtre d'info s'affiche par dessus la 1ere). Ou bien que la fermeture de la fenêtre d'info relance automatiquement le script ? 

4/ Est ce que cette portion

ls -d *.JPG | sed 's/\(.*\).JPG$/mv "&" "\1.jpg"/' | sh
ls -d *.JPEG | sed 's/\(.*\).JPEG$/mv "&" "\1.jpg"/' | sh
ls -d *.jpeg | sed 's/\(.*\).jepg$/mv "&" "\1.jpg"/' | sh

ne peut pas être simplifiée en 1 seule ligne ?

5/ Dans un dossier possédant plusieurs photos, si je n'en sélectionne qu'une et que j'applique la 1ere opération (créer des données EXIF) même les photos non sélectionnées sont affectées.
Est ce qu'il y aurait un moyen que l'opération ne s'applique qu'aux photos sélectionnées ?

6/ Est ce que vous avez des infos pour les futures fonctionnalités ?

Merci d'avance pour vos retours, et bonne utilisation si ce script vous intéresse smile
NB : Le script n'est pas finalisé, donc si vs l'utilisez c'est à  vos risques et périls cool (ceci dit il fonctionne chez moi sous Gutsy)

Dernière modification par soupaloignon (Le 03/02/2008, à 17:19)


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#2 Le 03/02/2008, à 16:41

atlas2003

Re : Script pour bidouiller les metadonnées exif : votre avis ?

Bonjour.

Je n'en est pas besoin maintenant mais je le garde sous la main smile
Ca a l'air pratique et meme si je ne m'en sers pas, ca donne de bon exemple.
Merci beaucoup!


Blabla autour d'Ubuntu > http://back2web.com/blabla/

Hors ligne

#3 Le 04/02/2008, à 11:43

soupaloignon

Re : Script pour bidouiller les metadonnées exif : votre avis ?

Un p'tit up... smile


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#4 Le 04/02/2008, à 13:23

Alain.g

Re : Script pour bidouiller les metadonnées exif : votre avis ?

1) Il semble y avoir un "fi" en trop, dans la partie "changer l'extension"
Pour les simplifications, entre autres :

- la fonction "control" pourrait être utilisée à  plusieurs endroits à  la place des "if [ "${PIPESTATUS[0]}""

- concernant la liste Zenity, il serait plus simple d'utiliser une colonne cachée ou des variables plutà´t que de tester l'intitulé entier.
exemple :

depart=`zenity --list --hide-column 1 --column "" --column "" 1 "choisissez une date" 2 "choisissez un titre"`
if [ $depart -eq 1 ] ; then
	echo choix 1
elif [ $depart -eq 2 ] ; then
	echo choix 2
fi

2) C'est à  cause du changement de la valeur IFS, ça t'oblige à  remplacer l'espace par un saut de ligne

3) je ne crois pas mais il toujours possible de la relancer (ce qui demanderait une réorganisation du script)

4) oui on peut facilement la simplifer en une petite ligne : il suffit d'utiliser la commande rename (souvent plus appropriée que mv pour renommer)

5) possible, avec $@ ou $*

6) -d a effacera bien les exif et iptc

Dernière modification par Alain.g (Le 04/02/2008, à 21:09)


Xubuntu Karmic !

Hors ligne

#5 Le 04/02/2008, à 21:02

soupaloignon

Re : Script pour bidouiller les metadonnées exif : votre avis ?

Merci pour toutes ces infos alain.g. Je regarde ça ce soir


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#6 Le 04/02/2008, à 21:15

Alain.g

Re : Script pour bidouiller les metadonnées exif : votre avis ?

Sinon il est également possible d'avoir un calendrier avec Zenity pour choisir la date

zenity --calendar

zenity --help-calendar


Xubuntu Karmic !

Hors ligne

#7 Le 06/02/2008, à 14:54

Peat.hagore

Re : Script pour bidouiller les metadonnées exif : votre avis ?

Tiens nous au courant des ameliorations

En tous cas
Bon boulot et bonne continuation

Hors ligne

#8 Le 07/02/2008, à 12:02

soupaloignon

Re : Script pour bidouiller les metadonnées exif : votre avis ?

Merci pour vos réponses, je suis en train de peaufiner le script


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#9 Le 11/02/2008, à 03:59

soupaloignon

Re : Script pour bidouiller les metadonnées exif : votre avis ?

Alain.g a écrit :
depart=`zenity --list --hide-column 1 --column "" --column "" 1 "choisissez une date" 2 "choisissez un titre"`
if [ $depart -eq 1 ] ; then
	echo choix 1
elif [ $depart -eq 2 ] ; then
	echo choix 2
fi

Je suis en train de tester cette partie pour le moment.  Je ne connaissais pas ce principe de la colonne cachée (ceci dit je n'y connais pas grand chose en script wink), et c'est vrai que c'est plus rationnel.

Par contre j'ai un souci, car la console ne s'affiche pas pour renvoyer le contenu de l'echo.

J'ai essayé en mettant des doubles cotes autour de choix 1 et choix 2, un read à  la fin du script, mais rien n'y fait.





soupaloignon a écrit :

3/ Lors du 1er lancement du script une fenêtre s'ouvre avec les différentes actions possibles. Une de ces actions est une info zenity sur ce que fait le script. Problème, lorsque l'on ferme cette fenêtre d'infos, la fenêtre initiale n'est plus là . Il faut relancer le script pour l'avoir, ce qui est un peu lourd.
Est ce qu'il y aurait un moyen pour que cette 1ere fenêtre soit toujours affichée (donc la fenêtre d'info s'affiche par dessus la 1ere). Ou bien que la fermeture de la fenêtre d'info relance automatiquement le script ?

Pour cette question, est ce qu'il est possible dans la fenetre zenity de mettre, en plus des boutons annuler et valider, un bouton aide ? Cela pourrait lancer la fenetre dont j'ai besoin. J'ai regardé le man de zenity, mais n'y ai rien vu de probant. Quelque chose m'a peut être echappé wink
(A propos du man de zenity j'ai trouvé ces pages qui sont pas mal : http://library.gnome.org/users/zenity/stable/index.html.fr)


Si quelqu'un a une idée, je suis preneur.

Merci d'avance

Dernière modification par soupaloignon (Le 11/02/2008, à 04:35)


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#10 Le 11/02/2008, à 09:11

Alain.g

Re : Script pour bidouiller les metadonnées exif : votre avis ?

soupaloignon a écrit :

Par contre j'ai un souci, car la console ne s'affiche pas pour renvoyer le contenu de l'echo.

J'ai essayé en mettant des doubles cotes autour de choix 1 et choix 2, un read à  la fin du script, mais rien n'y fait.

Je comprends pas, la commande "echo ..." c'était juste pour l'exemple (je t'accorde pas très judicieux). C'est à  remplacer pour les commandes pour changer la date, renommer etc...

soupaloignon a écrit :

Pour cette question, est ce qu'il est possible dans la fenetre zenity de mettre, en plus des boutons annuler et valider, un bouton aide ? Cela pourrait lancer la fenetre dont j'ai besoin. J'ai regardé le man de zenity, mais n'y ai rien vu de probant. Quelque chose m'a peut être echappé wink

Je ne pense pas. Tu pourrais éventuellement  mettre au début l'icà´ne d'aide en notification et faire afficher la boà®te d'infos quand on clique dessus. En enlevant l'icà´ne à  la fin du script


Xubuntu Karmic !

Hors ligne

#11 Le 11/02/2008, à 10:20

Peat.hagore

Re : Script pour bidouiller les metadonnées exif : votre avis ?

soupaloignon a écrit :

(A propos du man de zenity j'ai trouvé ces pages qui sont pas mal : http://library.gnome.org/users/zenity/stable/index.html.fr)

Bonjour
Perso....je ne peut pas t'aider pour ton probleme, mais je voulais te dire merci pour le lien, tres instructifs.

pour zenity...ne connaissant rien a la programmation, je pensais simplement qu'elle ne se servait qu'a faire des petites boites  de styles informations etc....
mais avec ce lien, je vois que l'on peut vraiment faire pas mal de chose, ca me donne de plus en plus envie de faire des scripts.

Bonne continuation
et si toi ou Alain.g vous avez  d'autres script....
wink

Dernière modification par Peat.hagore (Le 11/02/2008, à 10:21)

Hors ligne

#12 Le 11/02/2008, à 11:05

Alain.g

Re : Script pour bidouiller les metadonnées exif : votre avis ?

Peat.hagore a écrit :

mais je voulais te dire merci pour le lien

C'est le même manuel que celui qu'on peut trouver dans yelp. Si tu es sous Gnome, tu dois l'avoir :

yelp file:///usr/share/gnome/help/zenity/fr/zenity.xml


Xubuntu Karmic !

Hors ligne

#13 Le 11/02/2008, à 11:21

Peat.hagore

Re : Script pour bidouiller les metadonnées exif : votre avis ?

wink
Merci

Hors ligne

#14 Le 11/02/2008, à 13:16

soupaloignon

Re : Script pour bidouiller les metadonnées exif : votre avis ?

Alain.g a écrit :
soupaloignon a écrit :

Par contre j'ai un souci, car la console ne s'affiche pas pour renvoyer le contenu de l'echo.

J'ai essayé en mettant des doubles cotes autour de choix 1 et choix 2, un read à  la fin du script, mais rien n'y fait.

Je comprends pas, la commande "echo ..." c'était juste pour l'exemple (je t'accorde pas très judicieux). C'est à  remplacer pour les commandes pour changer la date, renommer etc...

En fait je me sers de l'info que tu m'as donné pour 2 scripts en cours de construction. Celui sur les données exif, et pour un script de sauvegarde.

Le point de départ est le même : une boite de choix, la validation d'un choix entraine l'exécution d'une partie de code.
Avant de mettre le code final j'ai voulu essayer juste la liste de choix, qui renvoi un echo en fonction de l'option choisie (dans mon esprit c'est plus simple pour tester. SI cela renvoi l'echo qui va bien c'est que la fonction "d'aiguillage" de la boite de dialogue fonctionne. Et qu'ensuite je peux lui faire exécuter le code qui va bien plutot que l'echo) (je le répéte, je n'y connais rien en code, mais  j'adore bricoler des scripts)

Si j'ai bien compris ce que tu m'as dit :

depart=`zenity --list --hide-column 1 --column "" --column "" 1 "choisissez une date" 2 "choisissez un titre"`
if [ $depart -eq 1 ] ; then
    echo choix 1
elif [ $depart -eq 2 ] ; then
    echo choix 2
fi

le choix 1 devrait renvoyer en console : choix 1
le choix 2 devrait renvoyer en console : choix 2

Hors la console ne s'affiche pas, et je ne peux lire ce qui est renvoyé (ou alors elle s'affiche trop rapidement pour être vue ?). Si la console ne s'affiche pas, c'est que le code n'est pas exécuté ?

Dernière modification par soupaloignon (Le 11/02/2008, à 13:19)


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#15 Le 11/02/2008, à 13:36

Alain.g

Re : Script pour bidouiller les metadonnées exif : votre avis ?

Cela renvoie bien "choix 1" ou 2 mais ce n'est pas censé ouvrir une console si le script n'est pas lancé en console.


Xubuntu Karmic !

Hors ligne

#16 Le 11/02/2008, à 15:20

soupaloignon

Re : Script pour bidouiller les metadonnées exif : votre avis ?

Même. Lorsque je double clique sur le script et choisi l'option : lancer dans un terminal, il s'affiche tres rapidement et se ferme de suite (c du moins l'impression que j'ai). j'ai rajouté un "read" a la fin du script, mais la console ne reste pas ouverte.


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#17 Le 11/02/2008, à 15:33

Alain.g

Re : Script pour bidouiller les metadonnées exif : votre avis ?

oui mais ça n'a rien à  voir avec cette syntaxe. La console se ferme une fois que le script est fini, quand les toutes les commandes ont été exécutées.

Pour que la console reste ouverte, tu peux ajouter -hold à  xterm :
xterm -hold -e script

il y a aussi une astuce qui consiste à  ajouter bash ou sh à  la fin du script. Ou tu peux mettre "sleep 10" pour retarder de 10 secondes.

Dernière modification par Alain.g (Le 11/02/2008, à 15:46)


Xubuntu Karmic !

Hors ligne

#18 Le 12/02/2008, à 03:07

soupaloignon

Re : Script pour bidouiller les metadonnées exif : votre avis ?

En fait c'est la commande read qui étaiit mal placé. Maintenant ça marche impeccable.

utilisateur=$'soupaloignon'

depart=`zenity --list --hide-column 1 --column "" --column "" 1 "USB vers portable" 2 "Portable vers USB"`

if [ $depart -eq 1 ] ; then
rsync -rltgoDv --del --ignore-errors --force /media/disk/ClefUSB/SAVperso/TEST/ /home/$utilisateur/TEST/
echo ""
echo ""
echo ""
echo "lE TRANSFERT DE LA CLE USB VERS LE PORTABLE EST TERMINE. VOUS POUVEZ FERMER CETTE FENETRE"
read

elif [ $depart -eq 2 ] ; then
rsync -rltgoDv --del --ignore-errors --force /home/$utilisateur/TEST/ /media/disk/ClefUSB/SAVperso/TEST/ 
echo ""
echo ""
echo ""
echo "lE TRANSFERT DU PORTABLE VERS LA CLE USB EST TERMINE. VOUS POUVEZ FERMER CETTE FENETRE"
read

fi

Maintenant que ça fonctionne je vais pouvoir l'adapter au script pour le sexif. A suivre.

Merci pour ton aide en tout cas Alain.g


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#19 Le 03/03/2008, à 03:47

atlas2003

Re : Script pour bidouiller les metadonnées exif : votre avis ?

Bravo! J'étais le premier a avoir repondu a ton post et je disais que j'en avais pas besoin tout de suite mais que je le gardais au chaud au cas ou. Et bien justement ce week end j'en ai eu besoin smile
Je me suis fais un petit script qui me classe plein de photo non trié dans des repertoires  de la forme YYYY-MM
Ca a fait du bien de ne pas avoir besoin de faire ca a la main.

Par contre je me suis appercu que j'avais des dossier 0000-00  et 2035-01 et d'autres qui ne sont pas correcte.

Du coup une fois retrier dans les bon dossier manuelement, je voudrais quand meme reécrire les bonnes données exif pour les dates.

Ton script a l'air ideal pour ca smile

J'ai cependant quelques petites question:

Je ne comprend pas la diff entre les deux premieres options:
Ajouter un horraire ou modifier un horraire.

Ensuite je voulais savoir s'il etait possible de modifier la date en laissant l'heure tel quel. Car j'ai beaucoup de photo qui ont la mauvaise date mais la bonne heure.


Merci a toi! Bonne journée / soirée / nuit


Blabla autour d'Ubuntu > http://back2web.com/blabla/

Hors ligne

#20 Le 04/03/2008, à 07:53

soupaloignon

Re : Script pour bidouiller les metadonnées exif : votre avis ?

atlas2003 a écrit :

Je ne comprend pas la diff entre les deux premieres options:
Ajouter un horraire ou modifier un horraire.

La 1ere option va créer des champs exif, typiquement pour les photos scannées par exemple.
La 2eme option va modifier un horaire existant (donc les champs exif existent déjà)

Si tes photos viennent d'un APN, les 2 options sont identiques et auront le meme résultat. Si par contre c'est du scan, la 2ème ne marchera pas car les champs exif ne sont pas créés(et encore, ça dépend si c'est du scan de win ou de linux)


atlas2003 a écrit :

Ensuite je voulais savoir s'il etait possible de modifier la date en laissant l'heure tel quel. Car j'ai beaucoup de photo qui ont la mauvaise date mais la bonne heure.

Je pense que oui, mais je n'ai pas approfondi la question. Tu peux essayer d'aller voir là quand même, il me semble que cela a été évoqué : http://forum.ubuntu-fr.org/viewtopic.php?id=6396
sinon un petit coup de man jhead wink


Fais moi un retour d'utilisation. Pour le moment je n'ai pas trop le temps de m'en occuper, mais le projet n'est pas aux oubliettes (je m'en sers régulièrement)

Dernière modification par soupaloignon (Le 04/03/2008, à 08:05)


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#21 Le 08/03/2008, à 19:18

Cyrille_tux

Re : Script pour bidouiller les metadonnées exif : votre avis ?

Ensuite je voulais savoir s'il etait possible de modifier la date en laissant l'heure tel quel

#Rajouter 1 heure 50 minutes sur la photo :
#jhead -ta+01:50:00 ma_photo

Hors ligne

#22 Le 26/10/2008, à 20:00

LaBêteNoire

Re : Script pour bidouiller les metadonnées exif : votre avis ?

Comment obtenir la dernière version de ce script?
Est-il présent dans la documentation? Je ne l'ai pas trouvé... pas plus que d'autres actions nautilus. Un manque à combler?

En cherchant un peu sur le web, j'ai trouvé cette alternative nautilus-rename-exif-date mais le lien vers le téléchargement de ce programme est mort...


- Diaspora : socialement décentralisé
- BeWelcome : association de voyageurs alternative à Couchsurfing
- Démosphère : réseau d'agendas militants et culturels
- OpenStreetMap : cartographie communautaire

Hors ligne

#23 Le 04/11/2008, à 19:20

kimusubi

Re : Script pour bidouiller les metadonnées exif : votre avis ?

Hello, je rejoins la demande de bêtenoire, à savoir où trouver ce script? Je suis sous ubuntu depuis peu, et l'APN ayant une date erronée, je suis tombé sur ce forum...
Merci.
Kimusubi

Hors ligne

#24 Le 05/11/2008, à 00:47

soupaloignon

Re : Script pour bidouiller les metadonnées exif : votre avis ?

Hello,

Désolé pour le retard de réponse.

En fait il n'y a pas vraiment eu de nouvelles version. Je suis tombé sur des problèmes que je ne suis pas arrivé à résoudre, et le script est resté en l'état.


==> Libérez les huitres du bassin d'Arcachon <==

Hors ligne

#25 Le 16/12/2008, à 21:39

Omegaz

Re : Script pour bidouiller les metadonnées exif : votre avis ?

Bonsoir à tous,

Ce script m'interessait, je l'ai repris. Ci joint le résultat de mes essais :

#!/bin/sh

#script basé sur celui de Soupaloignon sur forum.unbuntu-fr topic 1509255
#un grand merci à Alain.g pour ses suggestions
#et des codes repris un peu partout

# On met tout le script dans une boucle
while [ "$fin_du_script" != "oui" ]
do

	# On vérifie qu'un fichier a été sélectionné
	if [ $# -eq 0 ]; then
		zenity --error --title="Erreur" --text="Pour utiliser cet utilitaire, vous devez au préalable sélectionner un fichier. Le script va se terminer, relancez le"
		exit 1
	fi

	# On affiche le menu		
	title="Le menu"
	# On créé dans zenity une colonne cachée 1, 2, .. qui sera utilisée pour tester les choix
	menu=`zenity --width=150 --height=450 \
	--title "$title"  --list --hide-column 1 --column "" --column "" \
	0 "Quitter le script" \
	1 "Résumé des données EXIF" \
	2 "Données EXIF complètes" \
	3 "Données ITPC" \
	4 "Commentaires JPG" \
	5 "Modifier la date de la photo" \
	6 "Ajouter ou retrancher 1 ou 2 heure(s)" \
	7 "Inscrire un commentaire JPG" \
	8 "Modifier la taille de la photo" \
	9 "Extraite l'imagette" \
	10 "Transformer JPG en PDF" \
	99 "Commentaires"\
	| sed 's/ max//g' `


	# On vérifie qu'un choix a été fait
	if [ ! "$menu" ]; then
	zenity --error --title="Erreur" --text="Choisissez une action"
	fi


	# Test voir le choix
	#zenity --info --title ="Choix" --text="$menu" 

	# On veut quitter 
	if [ "$menu" = 0 ] ; then
	fin_du_script="oui"
	fi

	# On affiche le résumé des données EXIF
	if [ "$menu" = 1 ] ; then
	result=$(exiv2 "$1")
	zenity --info --title ="Informations sur la photo" --text="$result" 
	fi

	# Afficher les données EXIF complètes de la photo
	if [ "$menu" = 2 ] ; then	
	exiv2 -Plt "$1" | zenity --text-info --title ="Données complètes de la photo" --width=700 --height=500 
	fi

	# Afficher les informations ITPC
	if [ "$menu" = 3 ] ; then	
	title="Informations ITPC sur la photo"
	result=$(exiv2 -pi "$1")
		if [ "$result" != "" ] ; then
		exiv2 -pi "$1" | zenity --text-info --title ="$title" --text="$result" --width=700 --height=200 
		else
		zenity --info --title ="$title" --text="Pas de données ITPC pour cette photo" 
		fi
	fi


	# Afficher les commentaires JPG de la photo
	if [ "$menu" = 4 ] ; then	
	result=`exiv2 -pc "$1"`
		if [ "$result" != "" ] ; then
		zenity --info --title ="Commentaires de la photo" --text="$result" 
		else
		zenity --info --title ="Commentaires de la photo" --text="Pas de commentaire pour cette photo" 
		fi
	fi


	# Changer la date
	if [ "$menu" = 5 ] ; then

	quelle_date=$(zenity --calendar --text "Choisissez la date" --title "Choix")

                jj=$(echo $quelle_date | cut -d. -f1)
                mm=$(echo $quelle_date | cut -d. -f2)
                aa=$(echo $quelle_date | cut -d. -f3)

	jhead -ds"$aa":"$mm":"$jj" "$1"
	fi

	# Ajouter ou retrancher une heure

	if [ "$menu" = 6 ] ; then
	mod=$(zenity --list --radiolist --height=350 --width=350 \
    	--text="Choix de la modification" \
    	--title="Course" \
    	--column="" --column="" --column="" \
	--hide-column=2 \
    	TRUE 1 "Plus 1 h" \
	FALSE 2 "Plus 2 h" \
	FALSE 3 "Moins 1 h" \
    	FALSE 4 "Moins 2 h") 
	

		if [ $mod = "1" ]; then
		jhead -ta+1:00 "$1"
		elif [ $mod = "2" ]; then
    		jhead -ta+2:00 "$1"
		elif [ $mod = "3" ]; then
    		jhead -ta-1:00 "$1"
		elif [ $mod = "4" ]; then
    		jhead -ta-2:00 "$1"
		else
    		zenity --info --title="Attention" --text="aucune modification réalisée"
		fi
	fi


	# Ajouter commentaire JPG
	if [ "$menu" = 7 ] ; then
	commentaire=$(zenity --entry --width=400 \
	--title "Commentaire" \
	--text "Entrez ici votre commentaire" \
	--entry-text " ")

		if [ "$commentaire" != "" ] ; then
		jhead -cl "$commentaire" $1
		else
		zenity --info --title ="$title" --text="Vous n'avez pas rajouté de commentaire." 
		fi	
	fi

	# Modifier taille image
	if [ "$menu" = 8 ] ; then
	title="Choix de la taille"
	texte="Choisir la nouvelle taille"
	valeur=`zenity --title "$title"  --text "$texte" --list --separator=" "  --height=250 --width=100 --column="Taille" "320x240" "450x338" "640x480" "800x600" "1024x768" | sed 's/ max//g' `
	# click sur le bouton abandon
		if [ "$?" != 0 ] ; then
		exit
		fi
	# si pas de taille sélectionnée
		if [ ! "$valeur" ]; then
		zenity --error --title="error" --text="Aucune taille n'a été sélectionnée. Sortie de cette option."
		fi
	convert -quality 80 -resize $valeur "$1" $valeur-"$1"
	fi


	# Extraire l'imagette
	if [ "$menu" = 9 ] ; then
	exiv2 -et $1
	fi


	# Transformer l'image en pdf
	if [ "$menu" = 10 ] ; then
	picture=$1
	nom_pdf=$(echo "$1" | sed 's/\.\w*$/.pdf/')
	convert $1 $nom_pdf
	fi


	# Zone de commentaires
	if [ "$menu" = 99 ] ; then
	zenity --info --title="Commentaires" --text="Ici pour écrire ce que l'on veut"
	fi


done 
exit 0

Il s'agit de mon premier script, merci de votre indulgence.

Dernière modification par Omegaz (Le 17/12/2008, à 04:17)

Hors ligne