• Bonjour Visiteur. Bienvenue sur les nouveaux forums de MacGeneration. La peinture est encore fraiche, quelques boulons doivent être resserrés, plus d’informations demain !

Perte des dates des photos

e_lpt

Nouveau membre
12 Juin 2017
9
1
22
Bonjour à tous, j'ai un macbook pro mi-2012 et j'aimerais copier mes photos situées dans l'application "photos" du mac sur un disque dur externe (pas de Time Machine). Sauf que lorsque je copie et colle les photos dans le dossier du DDE, la date de chaque photo n'est plus du tout la meme, je me retrouve donc avec mes photos totalement désorganisées alors que j'aimerais les organiser par ordre chronologique dans le dossier.

Par exemple, une photo prise le 3 décembre 2016 lorsque je la colle dans le dossier, la date de création du fichier devient le 26 décembre 2016.

Est-ce qu'il y a un moyen de ne pas perdre les infos des photos lorsque je les colle dans un dossier? Je me vois pas renommer chaque photo avec sa date pour ensuite les organiser par nom...

Merci d'avance
 

zeltron54

Membre d’élite
29 Mars 2008
1 431
210
Lorraine
Bonsoir,

Le fichier d'une photo contient plusieurs dates

1 - La date de numérisation que l'on peut lire dans l' EXIF de la photo
2 - La date d'origine également dans EXIF
Ces 2 dates sont normalement les mêmes et correspondent à la date et heures de prise de vue.
3 - La date de création (du fichier) qui correspond à la date à laquelle le fichier à été créé sur l'ordi.

Dans ton cas je suppose que tu lis la date de création du fichier que l'on voit dans les informations du fichier dans le finder (Cmd+i)

La date de la photo est visible lors de l'ouverture de la photo avec aperçu dans l'inspecteur, onglet EXIF.

Donc les dates ne sont pas perdues, mais le finder les organisent par date du fichiers ...

Il existent plusieurs logiciels (gestion de photo) qui permettent de changer la date de création du fichier en la remplaçant par la date de prise de vue.
 

Steve1966

Nouveau membre
13 Août 2017
1
0
53
Bonjour, je fais des copies de mes photos par précaution. Comment faire pour que la date originale soit conservée (et non pas la date du jour de transfert)? merci par avance
 

zeltron54

Membre d’élite
29 Mars 2008
1 431
210
Lorraine
Coucou,
suite à notre conversation privée, et n'ayant pas trouvé de solution gratuite, à par exiftool, je t'ai écrit un petit applescript qui remplace la date de création du fichier par la date de création de la photo (date Tiff). A condition que la photo n'est pas été modifiée et réenregistrer avec un logiciel style photoshop qui change la date Tiff. Je n'ai pas trouvé le moyen de lire la date exif sans exiftool.

Le script te demande de sélectionner le dossier contenant les fichiers à traiter, puis fait le boulot !
Voilà le script si tu ne sais pas comment utiliser, je te donnerai les explications.

Bloc de code:
-- remplace date du fichier par la date exif creation

tell application "Finder"
    set Chemin to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à renommer"
    my inspecter(Chemin)
end tell

on inspecter(un_dossier)
    tell application "Finder"
        -- traitement des fichiers :
        set les_fichiers to files of un_dossier
        repeat with chaque_fichier in les_fichiers
            -- traitement d'un fichier
            set chaque_fichier to chaque_fichier as string
            try
                set datephoto to do shell script "sips -g creation " & quoted form of POSIX path of chaque_fichier
            on error
                set datephoto to ""
            end try
          
          
            if length of datephoto > 20 then
                set DateOriginale to text -20 thru -1 of datephoto
                set ladate to text 1 thru -16 of DateOriginale
                set ladate to ladate & text 7 thru -13 of DateOriginale
                set ladate to ladate & text 10 thru -10 of DateOriginale
                set ladate to ladate & text 13 thru -7 of DateOriginale
                set ladate to ladate & text 16 thru -4 of DateOriginale
                set ladate to ladate & "." & text 19 thru -1 of DateOriginale
            end if
          
            do shell script "touch -t " & ladate & " " & quoted form of POSIX path of chaque_fichier
          
        end repeat
    end tell
end inspecter
tell application "Finder"
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
 
Dernière édition:

zeltron54

Membre d’élite
29 Mars 2008
1 431
210
Lorraine
J'ajoute une version qui prend la date exif de création de la photo, mais qui nécessite qu'exiftool soit installé.

Bloc de code:
-- remplace date du fichier par la date exif creation

tell application "Finder"
    set Chemin to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à renommer"
    my inspecter(Chemin)
end tell

on inspecter(un_dossier)
    tell application "Finder"
        -- traitement des fichiers :
        set les_fichiers to files of un_dossier
        repeat with chaque_fichier in les_fichiers
            -- traitement d'un fichier
            set chaque_fichier to chaque_fichier as string
            try
                set datephoto to do shell script "/usr/local/bin/exiftool -DateTimeOriginal " & quoted form of POSIX path of chaque_fichier -- avec exiftool installé
               
            on error
                set datephoto to ""
            end try
           
           
            if length of datephoto > 20 then
                set DateOriginale to text -20 thru -1 of datephoto
                set ladate to text 1 thru -16 of DateOriginale
                set ladate to ladate & text 7 thru -13 of DateOriginale
                set ladate to ladate & text 10 thru -10 of DateOriginale
                set ladate to ladate & text 13 thru -7 of DateOriginale
                set ladate to ladate & text 16 thru -4 of DateOriginale
                set ladate to ladate & "." & text 19 thru -1 of DateOriginale
            end if
           
            do shell script "touch -t " & ladate & " " & quoted form of POSIX path of chaque_fichier
           
        end repeat
    end tell
end inspecter
tell application "Finder"
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
 
  • J’aime
Réactions: DjafaOS

ecatomb

Membre d’élite
Club MacG
21 Septembre 2016
2 175
456
Pourquoi ne pas simplement faire un "cp -p" lors de la copie ?
 

zeltron54

Membre d’élite
29 Mars 2008
1 431
210
Lorraine
@ecatomb
Pourquoi ne pas simplement faire un "cp -p" lors de la copie ?
Ce n'est pas un problème de copie, mais un problème de tri par le finder, qui tri par date de création du fichier, alors que les gestionnaires de photos tri par date de prise de la photo.

La solution la plus simple, mais payante, est de remplacer la date du fichier par la date de la photo avec GrapicConverter.
 

ecatomb

Membre d’élite
Club MacG
21 Septembre 2016
2 175
456
Le "cp -p" conserve tout les paramètres lors de la copie (date de création comprise). Le tri du finder sera donc le même avant et après la copie.

Bon perso, je renomme les photos via un script avant de les mettre dans l'application photo.
 

r e m y

Cas clinique
Club MacG
4 Novembre 2000
41 453
4 222
57
St Germain en Laye - FRANCE
Sauf que la date de création n'est deja plus la date de prise de la photo, mais la date de transfert du fichier depuis la carteSD de l'appareil photo vers le disque dur du Mac...
 

ecatomb

Membre d’élite
Club MacG
21 Septembre 2016
2 175
456
Exact d'où l'obligation d'utiliser le touch
Je le fais aussi vu que je retouche toujours un peu mes photos.

Pour la copie, je pensais que les dates étaient bonne dans l'application photo. Mea culpa
 

r e m y

Cas clinique
Club MacG
4 Novembre 2000
41 453
4 222
57
St Germain en Laye - FRANCE
Pour la copie, je pensais que les dates étaient bonne dans l'application photo. Mea culpa
L'application photo ne s'occupe pas des dates des fichiers et se base uniquement sur la date de prise de vue des données EXIF.
Seuls les fichiers de la carte SD de l'appareil photo ont des dates de creation cohérentes avec la date de prise de vue (en principe...sachant que j'ai déjà vu des cas où ce n'était pas le cas)
 

doombiss

Nouveau membre
21 Novembre 2011
13
0
39
Bonsoir,

Le script de zeltron fait des merveilles ! Pile ce qu'il me fallait :)

Je continue les exports et reviendrai donner des news.

Bonne soirée.
 

Karupat

Nouveau membre
5 Août 2018
2
0
48
Bonjour
Ca fait un bon moment que je cherche un outil simple pour faire ça... merci zeltron54 ton script, c'est top!!
J'ai tenté de faire 2 petites adaptations, mais je n'ai décidément pas fait de progrès en rédaction de script...
Te serait-il possible de gérer 2 choses :
- passer les fichiers n'ayant pas les données EXIF nécessaires à l'exécution du script
- Scanner les dossiers inclus dans le dossier de sélection
un grand merci d'avance au cas où tu puisses faire ça!!
 

zeltron54

Membre d’élite
29 Mars 2008
1 431
210
Lorraine
Bonjour Karupat

Je suis content que mon petit script ai pu te rendre service.

Je l'ai donc modifié
- Si un fichier n'a pas de date exif renseigné, alors il n'est pas touché
- Le script inspecte toute la hiérarchie du dossier sélectionné avec tous ses sous-dossiers
En espérant que cela te convienne.

Bloc de code:
-- remplace date du fichier par la date exif creation

tell application "Finder"
    set Chemin to choose folder with prompt "Sélectionnez le dossier contenant les fichiers à redater"
    my inspecter(Chemin)
end tell

on inspecter(un_dossier)
    tell application "Finder"
        -- traitement des fichiers :
        set les_fichiers to files of un_dossier
        repeat with chaque_fichier in les_fichiers
            -- traitement d'un fichier
            set chaque_fichier to chaque_fichier as string
           
           
            try
                set datephoto to do shell script "/usr/local/bin/exiftool -DateTimeOriginal " & quoted form of POSIX path of chaque_fichier -- avec exiftool installé
               
            on error
                set datephoto to ""
            end try
           
           
            if length of datephoto > 20 then
                set DateOriginale to text -20 thru -1 of datephoto
                set ladate to text 1 thru -16 of DateOriginale
                set ladate to ladate & text 7 thru -13 of DateOriginale
                set ladate to ladate & text 10 thru -10 of DateOriginale
                set ladate to ladate & text 13 thru -7 of DateOriginale
                set ladate to ladate & text 16 thru -4 of DateOriginale
                set ladate to ladate & "." & text 19 thru -1 of DateOriginale
                do shell script "touch -t " & ladate & " " & quoted form of POSIX path of chaque_fichier
            end if
           
           
        end repeat
       
        -- traitement des dossiers :
        set les_dossiers to folders of un_dossier
        repeat with chaque_dossier in les_dossiers
            -- traitement d'un dossier
            my inspecter(chaque_dossier)
        end repeat
    end tell
   
end inspecter
tell application "Finder"
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
 

Karupat

Nouveau membre
5 Août 2018
2
0
48
Bonjour Karupat

Je suis content que mon petit script ai pu te rendre service.

Je l'ai donc modifié
- Si un fichier n'a pas de date exif renseigné, alors il n'est pas touché
- Le script inspecte toute la hiérarchie du dossier sélectionné avec tous ses sous-dossiers
En espérant que cela te convienne.

...
Holalalala c'est juste parfait, un immense merci à toi !!! :merci::merci::merci:
Je sauvegarde toutes mes photos en fichiers/Dossiers par évènements/Dossiers par année en plus des photothèques de l'app Photos...
Je me voyais déjà passer les 6 prochains mois à tout faire dossier par dossier... :banghead:
 

zeltron54

Membre d’élite
29 Mars 2008
1 431
210
Lorraine
Content pour toi !
 

Oliver74000

Nouveau membre
7 Janvier 2019
7
0
51
Bonjour
Je suis très intéressé par ce dernier script mais je ne sais pas comment procéder. Utilisation d'Automator, de Terminal ? J'ai essayé les 2 mais cela ne marche pas. J'ai remplacé les parties en français par les éléments demandés mais sans résultats . pouvez vous m'aider ?
Merci par avance
 

zeltron54

Membre d’élite
29 Mars 2008
1 431
210
Lorraine
@Oliver74000
Bonjour,
Pour utiliser le script il faut:
1 - Installer Exiftool , tu le télécharges là (le fichier ExifTool-11.23.dmg ): http://owl.phy.queensu.ca/~phil/exiftool/
et tu ouvres ce dmg et tu installes le package.

2 - Tu ouvres l'application Éditeur de script qui se trouve dans applications > Utilitaires. Tu fais un copier coller du script dans la fenêtre de cette application puis tu cliqies sur le bouton Exécuter.
Le script te demande de sélectionner le dossier contenant les fichiers à re - dater. Puis il fait le job et te prévient lorsque c'est terminé.

ATTENTION il traite l'ensemble des fichiers du dossier y compris dans les sous-dossiers.
 

Oliver74000

Nouveau membre
7 Janvier 2019
7
0
51
Merci beaucoup Zeltron54.
J'ai pu lancer le script et le faire fonctionner.
Mon problème reste toutefois d'actualité : j'ai importé des photos et Vidéo dans le logiciel Photo ; certaines photos et videos ont bien été importer en prenant la date du cliché, mais il me reste des videos (environ 500) qui, lors de l'import prenne la date du jour de l'importation par exemple le 07/01/19 alors que ces videos concernent des vidéos de 2018 en antérieurs. Je précise que sur la video d'origine, la date est exacte sur chaque vidéo.
donc le scrip à du bien faire son travail mais le problème doit venir de Photo...
Bonne continuation
 

zeltron54

Membre d’élite
29 Mars 2008
1 431
210
Lorraine
Le script à été conçu pour les traiter les fichiers photos, pas pour les vidéos.
Il est donc normal que les dates des vidéos ne soient pas changées.