Faites le tri dans vos photos !
Par Nicofo le samedi 7 février 2009, 17:21 - Linux - Lien permanent
Update
- Script mis à jour - 14/11/2009.
Script fusionné avec
Voir : Renommez vos fichiers et vos photos.
Script fusionné avec
renomme
Voir : Renommez vos fichiers et vos photos.
Voici un petit script qui permet de trier ses photos en fonction de la date où la photo a été prise. Il utilise pour cela les metadata EXIF contenues dans les photos pour les renommer par ordre de date.
En effet, l'ordre alphabétique des photos ne correspond pas toujours à l'ordre chronologique. Et la date des photos affichée par nautilus,
ls -a
ou autres est parfois la date de la sauvegarder sur le PC, càd la même date pour toutes les photos.
Utilisation
Lancer le script
datePhoto
et laissez-le dans un premier temps analyser vos photos :
$ datePhotosSi elles ne sont pas triées par ordre, vous aurez alors la possibilité, si vous le souhaitez, de donner un nouveau nom à vos photos et enfin de les trier :
[4/6] détection de la date de 'soleil 5.jpg'...
$ datePhotosUn petit <enter> et c'est fait !!
Les 6 photos ne sont pas triées par date.
Voulez-vous renommer les 6/6 photos par ordre [o/N] ? o
Nom des photos ['soleil' par défaut <enter>] :
[1/6] soleil 11.jpg ==> soleil 1.jpg
[2/6] soleil 2.jpg ==> soleil 2.jpg
[3/6] soleil 7.jpg ==> soleil 3.jpg
[4/6] soleil 4.jpg ==> soleil 4.jpg
[5/6] soleil 5.jpg ==> soleil 5.jpg
[6/6] soleil 6.jpg ==> soleil 6.jpg
Vous confirmez [O/n] ?
Options
- il est possible de ne trier que les photos portant un certain nom : "
datePhotos vacance
" ne renommera que vos photos de vacance ! - vous pouvez ajouter la date dans le nom du fichier : "
datePhotos --ajoutDate
" - vous pouvez aussi afficher à l'écran la date des photos : "
datePhotos --affiche
" - toutes les options sont disponibles avec "
datePhotos --help
"
Extension : utilisez
datePhotos
récursivement dans tous les sous-dossiers grâce à datePhotosDir
: [afficher/cacher]
Remarque datePhotos nécessite
exiftool
, installé par défaut sur Fedora par exemple.(la fonction
identify
de ImageMagick, utilisée dans les version précédentes, a été remplacée par exiftool
, bien plus rapide pour détecter la date dans les données EXIF)Télécharger le script : datePhotos,
Télécharger le script : datePhotosDir.
Autres manières de renommer vos fichiers :
- changer le nom de fichiers (pas uniquement des photos) avec renomme
- la commande "
rename stringA stringB fichiers
" change "stringA" par "stringB" dans le nom des "fichiers"
Commentaires
Bonjour,
Super script bien pratique, mais j'ai juste un petit truc qui pourrait être pas mal. Il serait pratique de pouvoir mettre la date et l'heure dans le nom du fichier après renommage car si on renomme beaucoup de photos pas lots, elles se rangeraient toutes seules sans avoir à tout repasser.
Merci encore pour ce script.
PS : Si qq un peut me dire comment rajouter les informations dans le script. Merci
Salut,
ah, je constate que mon script est quand même utile
Pour la date, je ferais (en ayant réfléchi très rapidement) :
0) la ligne 87 crée déjà un fichier (fichFich) avec le les noms ordonnés
1) je rajouterais une instruction du même genre mais qui garde la date au lieu du nom du fichier (-> fichier fichD p. e.).
2) dans le while sur les fichiers (ligne 107), à l'itération 'i', récupérer la ligne 'i' du fichier fichD.
Voilà juste une piste...
bonjour et merci pour ces scripts
Je découvre par hasard ton site alors que je recherche comment utiliser imagemagick pour compresser un peu + mes jpg tout en conservant les données exif
je les télécharge et le les range soigneusement sur mon bureau !
merci encore de mettre ton travail à dispo de tous
fulup
Merci !
Salut,
Je suis tombé sur ton script. Ce qui donné la curiosité de tester la commande identify.
Cette commande ne marche pas bien sous Lenny ni Intrepid (Ubuntu).
Pour ceux que cela intéressent mes recherches m'ont amené à la remplacer par la commande exif (package du même nom) :
date="$(exif -m --tag=DateTimeOriginal "$file")"
merci!
Un script qui m'a bien sauvé, félicitation.
Pour renommer les fichiers j'utilise krename (je ne sais pas si c'est spécifique kde mais il fonctionne très bien)
http://www.krename.net/
Yop,
Bon j'ai testé et ça ne marche pas
Bon en fait c'est assez simple, la fonction "rename" sous Ubuntu ne fonctionne pas exactement comme elle est prévue dans le script ..
rename string1 string2 *.jpg => pour renommer "string1" en "string2" dans tous les fichiers "jpg"
En effet, sous ubuntu la fonction rename prend pour son premier parmetre une REGEXP et ensuite le fichier ou les fichiers ...
Bref dans notre cas il faut remplacer, dans ce superbe script, la dernière ligne :
#rename .TMPTMP "" *jpg.TMPTMP
rename "s/\.TMPTMP$//" *jpg.TMPTMP
voilà ::))
bonne utilisation
SoniX
voir aussi exiftool qui fait aussi le café !