Je souhaite spécifier un répertoire et faire en sorte que le logiciel trouve toutes les photos du répertoire et de ses sous-répertoires. Si elles contiennent la date / heure EXIF, le timestamp de leur système de fichiers correspond à celui de EXIF.
Je souhaite spécifier un répertoire et faire en sorte que le logiciel trouve toutes les photos du répertoire et de ses sous-répertoires. Si elles contiennent la date / heure EXIF, le timestamp de leur système de fichiers correspond à celui de EXIF.
Réponses:
C’est l’inverse de Existe - t-il un logiciel permettant de définir les dates EXIF en fonction de la date de modification du fichier? et je suis sûr que tous les programmes énumérés s’appliqueront.
Parmi ceux-ci, pour cette tâche très simple, jhead est ma suggestion. Par exemple, la commande
jhead -ft *.jpg
définit un groupe de fichiers pour que l'horodatage du fichier corresponde à EXIF.
find
, pour parcourir les sous-répertoiresPour effectuer la récursivité dans les sous-répertoires, vous pouvez le combiner avec la find
commande disponible sous Linux / Unix / Mac (ou Cygwin pour Windows):
find -name '*.jpg' -exec jhead -ft {} +
Ou pour trouver l'un de *.JPG *.JPEG *.jpg *.jpeg ...
vous peut également essayer
find -iname '*.jp*g' -exec jhead -ft {} +
Vous pouvez également utiliser find pour afficher uniquement tous les fichiers qui seraient ... trouvés, sans exécuter aucune autre commande (comme jhead):
find -iname '*.jp*g'
D'autres utilitaires comme ExifTool ou Exiv2 sont beaucoup plus capables, mais au prix de la complexité. Je ne me souviens jamais des bonnes options pour faire quoi que ce soit avec elles et je dois regarder la documentation à chaque fois, mais il jhead -ft
est facile de se rappeler avec la mnémonique "temps de réparation".
Juste pour être complet, bien que, je l'ai fait regarder la documentation, et avec ExifTool , faites ceci:
exiftool -r '-DateTimeOriginal>FileModifyDate' directoryname
(Supprimez la -r
si vous ne voulez pas de récursivité, et si vous faites cela, vous pouvez également donner une liste de fichiers ou un caractère générique à la place de directoryname
.) Et soyez prudent avec ces guillemets - si vous utilisez ceci sous Windows, vous voulez "
au lieu de '
.
Avec Exiv2 :
exiv2 -T rename *.jpg
Attention, avec des minuscules -t
(ou sans aucune -T
lettre) Exiv2 renommera également le fichier sous un nouveau nom basé sur l'horodatage, ce qui peut être très déroutant. Exiv2 ne fait pas non plus de récursivité.
find -name '[0-9][0-9]*' -o -iname '*.jp*g' -type f -exec jhead -ft -n%Y%m%d_%H%M%S_%f {} +
. Explications: -name '[0-9][0-9]*'
pour éviter de renommer à nouveau des fichiers ayant déjà un préfixe de date ( '[0-9][0-9]
pour prendre en compte les années et les mois). -iname '*.jp*g'
peut être ignoré, car jhead
ne traite que les fichiers pris en charge (uniquement les fichiers JPEG). %f
conserver le nom de fichier d'origine.
Irfanview et Jhead feront tous les deux ce que vous voulez.
Les deux gratuits.
Liens vers les deux ci-dessous.
jhead est piloté par la ligne de commande ou peut être appelé par d'autres processus.
La version d'Irfanview peut être appelée à partir d'une ligne de commande ou de manière interne, par lots ou fichier par fichier.
L'exemple ci-dessous pour Irfanview montre comment copier dans un sens ou dans l'autre:
Irfanview
Autorise les modifications de ligne de commande ou de groupe de commandes par lot ou par fichier date / heure de transfert de EXIF vers la spécification de fichier ou vice versa (sans autre modification de fichier si souhaité).
Source: gratuit sur www.irfanview.com
C’est BEAUCOUP plus facile et plus rapide en pratique, après quelques utilisations seulement, que les instructions ci-dessous donnent à voir. Par exemple,
pour convertir la date / heure d'un fichier unique en valeurs EXIF, il faut
Shift-J, Alt-F, Entrée.
Voir pourquoi les premières fois prend plus de temps.
Pour faire cela pour un lot de fichiers SONORITÉS complexes à apprendre -
Il nécessite: T, Ctrl-A, Alt-F, J, Entrée, (Alt-F), Entrée
(Ou: T, Ctrl-A, Maj-J, Entrez) (donne moins d’options)
MAIS en fait, il est presque totalement intuitif après une petite utilisation - les menus vous guident au départ jusqu’à ce que la voie du cerveau se forme.
GUI, par fichier
Options, JPG lossless rotation (Shift-J)
Select "Apply original EXIF date/time to new file"
Consider also selecting other options
GUI, un ou plusieurs fichiers (via la vue Miniature)
Open Thumbnails view ('File, Thumbnails' or 'T' from Window view
Select images to change EXIF data of
usually all in folder -> Ctrl-A
Then: File, 'JPG lossless operations'
(1) Change EXIF date/time
"Change EXIF date/time"
Options are offered to set Date/time to specific setting
or to move all times back/forwards by selected DHMS amount
calculator provided to check result is as desired.
(2) Transfer EXIF date / time to file saved date time
"Lossless rotation with selected files" [Shift-J]
then, as for single file version above
Select "Apply original EXIF date/time to new file"
À partir de la ligne de commande - il s’agit d’une "rotation" avec AUCUNE action, sauf pour copier la date / heure d’EXIF dans la date et l’heure du fichier. Le contraire peut également être obtenu si vous le souhaitez. :
i_view32.exe file_spec \ *. jpg / jpg_rotate = (0,0,0,1,0,0,0,0)
Pour copier la date / heure dans le sens opposé ((filespec to EXIF),
utilisez comme ci-dessus avec (0,0,1,0,0,0,0,0))
tête
fera à peu près tout ce que vous pouvez imaginer avec des fichiers JPEG
Source: Gratuit depuis http://www.sentex.net/~mwandel/jhead/
J'utilise un fichier de commandes comme ci-dessous. D'autres options sont possibles:
Ils disent: Les choses jhead peuvent modifier dans un fichier JPEG exif
_________________________
Note: Août 2016: "Utilisateur anonyme" a correctement suggéré qu'une conversion suggérée ne fonctionne pas comme je l'ai dit. J'ai beaucoup ajouté à la zone concernée.
Juste un autre outil EXIF en ligne de commande qui peut modifier la date de dernière modification des fichiers en fonction du moment de la prise de vue, en fonction du métada EXIF dans le fichier image JPEG:
exiv2 -T rename somedir/foo*.jpg
Pas d'inquiétude, l'argument de commande rename
est correct et ne nuit pas.
C'est simplement que l'action de renommer le fichier est utilisée à mauvais escient pour créer uniquement l'effet secondaire de la modification de l'horodatage.
Bien que je ne recommande vraiment pas de vous fier à la date / heure du fichier pour vos images, vous pouvez utiliser un outil gratuit appelé EXIF Date Changer pour définir par lots les dates de fichier de toutes vos images JPG. Le paramètre par défaut définit à la fois la date de création et la date de modification du fichier sur la photo prise.
La raison pour laquelle je ne recommande pas cela est que la date du fichier est facilement mise à jour. Si vous modifiez l'image, la date modifiée est mise à jour. Si vous copiez l'image, elle prend une nouvelle date.
Une solution bien meilleure consiste à renommer les fichiers pour inclure la date / heure dans le nom du fichier lui-même. Cela permet toujours un tri facile et fonctionne bien avec les images stockées sur iPhone / Dropbox.
Découvrez mon nouveau logiciel gratuit "Photo Date Organizer": http://photodateorganizer.sourceforge.net/
FastStone Image Viewer peut le faire (version 4.9 utilisée) - il suffit de sélectionner les fichiers dans le volet des miniatures, de cliquer-droit dessus, de sélectionner "Outils"> "Modifier l’horodatage". Vous pouvez ensuite utiliser les données EXIF (avec ou sans coutume fixe date / heure manuelle.
Advance Renamer est le meilleur logiciel convivial qui soit très simple.
Faites glisser et déposez toutes les photos sur AR (Advance Renamer)
Cliquez sur (en haut à gauche) Ajouter une méthode -> Nouveau nom
Cliquez sur l'une des images en bas au centre, vous verrez un bouton ExifTool qui affiche toutes les métadonnées. Cliquez simplement sur un attribut et vous obtiendrez la balise. Dans ce cas, il s'agit<ExifTool:DateTimeOriginal>
Copiez ceci et collez-le dans la zone de texte Nouveau nom. Vous pouvez ajouter n'importe quoi avant ou après comme IMG_<ExifTool:DateTimeOriginal>
, DSC_<ExifTool:DateTimeOriginal>
etc.
Cliquez sur Démarrer le lot (en haut à droite). Cela renomera tous vos fichiers avec la date. Par exemple, 2017_12_01 19_10_12 Il est toujours bon de conserver la date d'origine dans le nom du fichier car les attributs risquent d'être perdus, mais les noms de fichiers ne le seront pas.
<Year>_<Month>_<Day> <Hour>_<Min>_<Sec>
Je l'ai suggéré à l'auteur de PhotoRenamer, qui a répondu ...
PhotoRenamer 3.2 http://www.tgmdev.be/applications/photorenamer/photorenamer.php
J'ajoute un bouton dans l'onglet "Options" du ruban. À partir de là, vous pouvez sélectionner l'option permettant de mettre à jour le statut de l'heure du fichier.
Par ailleurs, pour éviter l'utilisation de masque, j'ajoute également un nouvel attribut de masque:% F. Si vous utilisez ce masque simple, le fichier est renommé ... avec son propre nom ... Vous n'êtes donc pas obligé de renommer le fichier pour lequel vous souhaitez mettre à jour les attributs de temps du fichier ...
C’est une vieille question et il semble y avoir quelques suggestions qui devraient bien fonctionner, mais celle à laquelle je suis arrivé pour régler un problème de classement de fichiers après une mise à niveau d’un téléphone Android était la suivante.
Peut-être que cela sera utile à quelqu'un.
L’autre programme gratuit est Google Picasa. Vous pouvez facilement modifier par lots la date et l’heure de toutes les photos:
Bel article à ce sujet: Comment modifier la date d'une photo dans Picasa en indiquant le moment où la photo a été prise