#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
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
NB : Le script n'est pas finalisé, donc si vs l'utilisez c'est à vos risques et périls (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
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...
==> 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 ?
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 ), 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.
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é
(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 ?
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...
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é
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 ?
(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....
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 ?
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
Hors ligne
#14 Le 11/02/2008, à 13:16
- soupaloignon
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...
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
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
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 ?
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)
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
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