Script pour renommer des photos selon la date de leur prise

Le
Guillaume
Bonjour à tous.

Qui saurait me dire comment faire la (lourde) tâche suivante ?

J'ai tout un tas de photos issues de mon appareil photo numérique en .jpg=
qui
sont classées n'importe comment et j'aimerais les renommer en fonction de=
la
date à laquelle elles ont été prises, c'est-à-dire faire en sorte q=
ue ma photo
nommée img_0258.jpg prise le 30 mars 1998 s'appelle désormais 08_03_30.=
jpg

Avec l'idée de commencer par l'année, de façon à pouvoir les trier =
plus
facilement .

Après, la question est : que faire quand plusieurs photos ont été pri=
ses le
même jour ?

Ben, il faudrait pouvoir pousser le vice à ajouter l'heure de prise, du g=
enre
08_03_30_15h24.jpg

Quelqu'un aurait-il l'esprit suffisamment tordu pour m'aider ?

Merci d'avance !

Guillaume
--
Garanti 0% Micro$oft
Envoyé sous Debian

Pourquoi payer des logiciels inutiles à l'achat d'un ordinateur neuf ?
http://www.racketiciel.info

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
David Cure
Le #18532721
--Pne3QHOc71xlvekJ
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Le Fri, Jan 30, 2009 at 03:30:51PM +0100, Guillaume ecrivait :

Qui saurait me dire comment faire la (lourde) tâche suivante ?


[snip]
Ben, il faudrait pouvoir pousser le vice à ajouter l'heure de prise, du genre
08_03_30_15h24.jpg

Quelqu'un aurait-il l'esprit suffisamment tordu pour m'aider ?



même pas besoin de l'esprit tordu : jhead fait ça très bien.

David.

--
Chronique, Articles, Projets "libre" -> http://www.cure.nom.fr/
Association FINIX : Finistere *nix -> http://www.Finix.EU.Org/
"Le temps n'est pas important, seule la vie est importante" L5E

--Pne3QHOc71xlvekJ
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFJgxKRx5Qtjcby22cRAkN0AKCJGz2Bo7jIxqSE7wmU1PPjMAS1BACbBFI1
igAjh2ehOkYgU+7opHJRnKE ¬h4
-----END PGP SIGNATURE-----

--Pne3QHOc71xlvekJ--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
François Cerbelle
Le #18532911
David Cure a écrit :
Le Fri, Jan 30, 2009 at 03:30:51PM +0100, Guillaume ecrivait :
Qui saurait me dire comment faire la (lourde) tâche suivante ?


[snip]
Ben, il faudrait pouvoir pousser le vice à ajouter l'heure de prise, du genre
08_03_30_15h24.jpg

Quelqu'un aurait-il l'esprit suffisamment tordu pour m'aider ?



même pas besoin de l'esprit tordu : jhead fait ça très bien.

David.




Si j'avais su plus tôt...
J'ai plusieurs fois installé le paquet exif et construit une commande du
genre :
for i in *.JPG; do mv "$i" "`exif -i "$i" | grep 9003 | cut -d| -f2 |
cut -d -f1-2 | sed 's/://g;s/ /_/'`-`echo $i | sed
's/IMG.//;s/.JPG/.jpg/'`";done;

Comme ca, il y a la date, l'heure et le numero de sequence.
C'est du (moyen)quick-and-(very)dirty, mais ca marche à condition
d'avoir le paquet exif

En général, je retourne les photos qui possèdent l'indicateur
d'orientation pour que tous les logiciels les ouvrent correctement et je
fais recalculer l'icone embarquée avec le paquet exiftran :

exiftran -gi *.jpg


Fanfan

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Guillaume
Le #18533111
Le vendredi 30 janvier 2009, à 15:45:37, David a écrit :

même pas besoin de l'esprit tordu : jhead fait ça très bien.



Oui, avec l'aide trouvée là grâce à ta piste :
http://www.sentex.net/~mwandel/jhead/usage.html

Et la syntaxe suivante : jhead -n%Y_%m_%d-%H_%M_%S *.jpg

Merci pour les réponses.

Guillaume

--
Garanti 0% Micro$oft
Envoyé sous Debian
---
Pourquoi payer des logiciels inutiles à l'achat d'un ordinateur neuf ?
http://www.racketiciel.info

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Gilles MISSONNIER
Le #18533451
This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.

---1480404480-922457628-1233329329=:6143
Content-Type: TEXT/PLAIN; charset=UTF-8
Content-Transfer-Encoding: QUOTED-PRINTABLE

excellent ! et hyper utile,
merci David

aptitude install jhead
jhead -nobs_%Y_%m_%d_a_%Hh%M_%S *.jpg

y'a plus qu'à bien régler l'heure de l'appareil photo.


+> > Ben, il faudrait pouvoir pousser le vice à ajouter l'heure de pri se, du genre
+> > 08_03_30_15h24.jpg
+> >
+> > Quelqu'un aurait-il l'esprit suffisamment tordu pour m'aider ?
+>
+> même pas besoin de l'esprit tordu : jhead fait ça très bien.
+>
+> David.
---1480404480-922457628-1233329329=:6143--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Christophe Diaz
Le #18533661
Guillaume a écrit :
Bonjour à tous.

Qui saurait me dire comment faire la (lourde) tâche suivante ?

J'ai tout un tas de photos issues de mon appareil photo numérique en .jpg qui
sont classées n'importe comment et j'aimerais les renommer en fonction de la
date à laquelle elles ont été prises, c'est-à-dire faire en sorte que ma photo
nommée img_0258.jpg prise le 30 mars 1998 s'appelle désormais 08_03_30.jpg...





Perso j'utilise ce script

---------------------- début du script ------------------------------------

#!/bin/bash

# ce script depend du paquet "exiftags"

echo -n "Allume l'appareil de photo et positionne le petit curseur"
echo ' sur la visualisation des images.'
echo 'Puis branche-le (attention à bien respecter cet ordre)'
echo 'Tape entrée lorsque tout est prêt.'
read

echo "Où faut-il mettre ces photos ?"
echo "(qui seront dans un nouveau répertoire avec comme nom la date
d'aujourd'hui)"
echo ""
echo "1. Dans /home/slv/Photos/0_En_attente"
echo "2. Dans /home/chr/Nos_photos/0_En_attente"
echo -n "3. Dans le répertoire courant, c'est à dire "
pwd

read lieu

echo "Faut-il rajouter un suffixe au nom du répertoire accueillant ces
photos ?"
read O_N_suffixe

case $O_N_suffixe in
o*|O*)
echo "Et quel est ce suffixe (sans espace ni caractères interdits STP)?"
read suffixe;;
esac

#dossier=$(date +%d_%m_%Y_%Hh_%M)

# pour avoir la date au format US, plus pratique pour l'ordre des
dossiers lorsqu'on affiche la liste
dossier=$(date +%F_%Hh_%M)

case $O_N_suffixe in
o*|O*)
dossier=$(date +%F_%Hh_%M)_$suffixe;;
esac


case $lieu in
3)
repertoire=.;;

2)
repertoire=/home/chr/Nos_photos/0_En_attente;;

1)
repertoire=/home/slv/Photos/0_En_attente;;

esac

mkdir -p /var/Photos/$dossier
mkdir -p $repertoire/$dossier



(
cd $repertoire/$dossier/

# Pour que un user non root puisse utiliser cette commande, voir
la doc de gphoto2 ou
# mon rapport dans Mon_ordinateur/instal...
#sudo gphoto2 -P
gphoto2 -P

# renomme les fichiers *.JPG en *.jpg
#marche avec Debian, conforme aux standards perl

rename 's/.JPG/.jpg/' *.JPG



#pour tous les fichiers .jpg dans le rep ou on lance le script

for fichier in `ls *.jpg`
do

#on recupere la date de la prise de vue et on la stocke dans
la variable DATE
DATE=`exiftags -v $fichier | grep Generated | awk '{print $3}' |
tr ':' '_' `

#----------------------------^^^^^^^^^^^^^^---- Cherche la ligne
contenant le mot Generated

#---------------------------------------------^^^^^----sort le
troisième champ de la ligne

#
--------------------------------------------------------------^^^^^^---
remplace : par _

#On insère la date de l'exif au début du nom du fichier
rename 's/^/'$DATE'-/' $fichier


done

)

chgrp -R camera $repertoire/$dossier/
chmod g+rw $repertoire/$dossier/
chmod g+rw $repertoire/$dossier/*
cp $repertoire/$dossier/* /var/Photos/$dossier

echo "Les photos qui viennent d'être chargées sont dans le dossier"
$repertoire/$dossier
echo "Une copie de secours de $dossier se trouve dans /var/Photos."
echo "Que faut-il faire maintenant ?"
echo " 0. Quitter"
echo " 1. Visualiser ces photos aves kuickshow"
echo " 2. Visualiser ces photos avec Gthumb"
echo " Entre ton choix...."
read visu

case $visu in
O)
exit0;;

1)
(
cd $repertoire/$dossier/
kuickshow
);;

2)
(
cd $repertoire/$dossier/
gthumb *
);;
esac


--------------------------------------- fin du script
-------------------------------------------------

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Jacques L'helgoualc'h
Le #18533671
Guillaume a écrit, vendredi 30 janvier 2009, à 16:26 :
Le vendredi 30 janvier 2009, à 15:45:37, David a écrit :

> même pas besoin de l'esprit tordu : jhead fait ça très bien.

Oui, avec l'aide trouvée là grâce à ta piste :
http://www.sentex.net/~mwandel/jhead/usage.html

Et la syntaxe suivante : jhead -n%Y_%m_%d-%H_%M_%S *.jpg



Tu peux être embêté avec un appareil prenant des photos en rafale...
Il me semble souhaitable de préserver le numéro de 4 chiffres défini
par l'appareil.
--
Jacques L'helgoualc'h

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
David Cure
Le #18533911
--balsNyzuYCBdi6WK
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Le Fri, Jan 30, 2009 at 03:59:35PM +0100, François Cerbelle ecrivait :

Si j'avais su plus tôt...



;)

En général, je retourne les photos qui possèdent l'indicat eur
d'orientation pour que tous les logiciels les ouvrent correctement et je
fais recalculer l'icone embarquée avec le paquet exiftran :

exiftran -gi *.jpg



on peut tout faire un 1 coup avec jhead, renommage et rotation
(avec rotation des imagettes exif) :

jhead -n -autorot img_*.jpg

David.

--
Chronique, Articles, Projets "libre" -> http://www.cure.nom.fr/
Association FINIX : Finistere *nix -> http://www.Finix.EU.Org/
"Le temps n'est pas important, seule la vie est importante" L5E

--balsNyzuYCBdi6WK
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: Digital signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFJgyd5x5Qtjcby22cRAitdAKCatshQsW40MdXe5kJ3nWjCW6aKiACgoNVV
dc2xrTph/N2ziep9UF0kqN4 =WksS
-----END PGP SIGNATURE-----

--balsNyzuYCBdi6WK--

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Jacques L'helgoualc'h
Le #18533901
François Cerbelle a écrit, vendredi 30 janvier 2009, à 15:59 :
David Cure a écrit :
Le Fri, Jan 30, 2009 at 03:30:51PM +0100, Guillaume ecrivait :
Qui saurait me dire comment faire la (lourde) tâche suivante ?


[snip]
Ben, il faudrait pouvoir pousser le vice à ajouter l'heure de prise,
du genre 08_03_30_15h24.jpg

Quelqu'un aurait-il l'esprit suffisamment tordu pour m'aider ?



même pas besoin de l'esprit tordu : jhead fait ça très bien.





Oui, mais les renommages sont limités à l'aspect date.

Si j'avais su plus tôt...
J'ai plusieurs fois installé le paquet exif et construit une commande du
genre :
for i in *.JPG; do mv "$i" "`exif -i "$i" | grep 9003 | cut -d| -f2 |
cut -d -f1-2 | sed 's/://g;s/ /_/'`-`echo $i | sed
's/IMG.//;s/.JPG/.jpg/'`";done;

Comme ca, il y a la date, l'heure et le numero de sequence.
C'est du (moyen)quick-and-(very)dirty, mais ca marche à condition
d'avoir le paquet exif



On doit pouvoir simplifier ;) --- mais exiftool offre plus de souplesse

,----(man exiftool, -> RENAMING EXAMPLES)
|
| exiftool '-Directory<DateTimeOriginal' -d %Y/%m/%d dir
| Move all files in "dir" into a directory hierarchy based on
| year, month and day of "DateTimeOriginal". ie) This command
| would move the file "dir/image.jpg" with a "DateTimeOriginal"
| of "2005:10:12 16:05:56" to "2005/10/12/image.jpg".
|
| exiftool '-filename<%f_${focallength}.%e' dir
| Rename all files in "dir" by adding FocalLength to the file
| name.
|
| exiftool '-FileName<CreateDate' -d %Y%m%d_%H%M%S.%%e dir
| Rename all images in "dir" according to the "CreateDate" date
| and time, preserving the original file extensions. Note the
| extra '%' added to the file extension code (%%e) since it is
| used in a date format string.
|
| exiftool -r '-FileName<CreateDate' -d %Y-%m-%d/%H%M_%%f.%%e dir
| Both the directory and the filename may be changed together via
| the "FileName" tag if the new "FileName" contains a '/'. The
| example above recursively renames all images in a directory by
| adding a "CreateDate" timestamp to the start of the filename,
| then moves them into new directories named by date.
|
| exiftool '-FileName<${CreateDate}_$filenumber.jpg' -d %Y%m%d
| dir/*.jpg
| Set the filename of all JPG images in the current directory
| from the CreateDate and FileNumber tags, in the form
| "20060507_118-1861.jpg".
|
`----

Par ailleurs, j'utilise le script gpsPhoto.pl pour créer les champs GPS,
je vais donc sans doute pouvoir intégrer tout ça en Perl...
--
Jacques L'helgoualc'h

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Guillaume
Le #18533881
Le vendredi 30 janvier 2009, à 17:01:09, Jacques a écrit :

Tu peux être embêté avec un appareil prenant des photos en rafale...
Il me semble souhaitable de préserver le numéro de 4 chiffres défini
par l'appareil.



J'ai eu le souci suivant : mon APN est tombé en rade, je l'ai envoyé au SAV
qui a changé je ne sais plus quelle grosse pièce et je me retrouve avec un
compteur d'appellation des photos réinitialisé ; si bien que j'ai des
premières photos prises quand j'ai eu mon APN au début que j'ai effac ées depuis
de la carte et stockées sur mon portable et des photos actuelles qui ont le
même nom.
D'où l'idée de shunter ce petit pb en passant par la date :-P

Guillaume

--
Garanti 0% Micro$oft
Envoyé sous Debian
---
Pourquoi payer des logiciels inutiles à l'achat d'un ordinateur neuf ?
http://www.racketiciel.info

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Jacques L'helgoualc'h
Le #18534271
Guillaume a écrit, vendredi 30 janvier 2009, à 17:09 :
Le vendredi 30 janvier 2009, à 17:01:09, Jacques a écrit :

> Tu peux être embêté avec un appareil prenant des photos en rafale...
> Il me semble souhaitable de préserver le numéro de 4 chiffres défini
> par l'appareil.

J'ai eu le souci suivant : mon APN est tombé en rade, je l'ai envoyé au SAV
qui a changé je ne sais plus quelle grosse pièce et je me retrouve avec un
compteur d'appellation des photos réinitialisé ; si bien que j'ai des
premières photos prises quand j'ai eu mon APN au début que j'ai effacées depuis
de la carte et stockées sur mon portable et des photos actuelles qui ont le
même nom.



De nombreux appareils continuent la numérotation à partir du dernier
numéro présent sur la carte. Tu peux aussi incrémenter celui des photos
récentes avec un petit script :

bac_a_sable $ touch phot{1000..1017}.jpg
bac_a_sable $ rename -v 's/(d{4})./($1 + 42)."."/e' phot*.jpg
phot1000.jpg renamed as phot1042.jpg
phot1001.jpg renamed as phot1043.jpg
phot1002.jpg renamed as phot1044.jpg
phot1003.jpg renamed as phot1045.jpg
[...]
phot1017.jpg renamed as phot1059.jpg


D'où l'idée de shunter ce petit pb en passant par la date :-P



Par ailleurs, je crois qu'il est préférable de faire des dossiers
quotidiens, ou au moins mensuels --- dépasser 9999 photos prend tout de
même un certain temps...
--
Jacques L'helgoualc'h

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/DebFrFrenchLists
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Publicité
Poster une réponse
Anonyme