Changer les dates d une série d'image
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je sais faire un PHP qui marche très bien pour changer "la date modifiée le"
<?php $directory = 'C:/mesdocum/EasyPHP-5.3.2/www/exifimg'; function modifyImageDate($file, $newDate) { if (exif_imagetype($file) == IMAGETYPE_JPEG) { // Modifie la date de modification du fichier système touch($file, strtotime($newDate)); $command = "exiftool -DateTimeOriginal=\"$newDate\" -overwrite_original \"$file\""; shell_exec($command); echo "Date modifiée pour : $file\n"; } } $newDate = '2022-01-01 12:00:00'; if ($handle = opendir($directory)) { while (false !== ($file = readdir($handle))) { $filePath = $directory . '/' . $file; if (is_file($filePath)) { modifyImageDate($filePath, $newDate); } } closedir($handle); } else { echo "Impossible d'ouvrir le répertoire.\n"; } ?>
Mais comment procéder pour changer "la date de prise de vue" car mes anciennes diapos ont été scannées, et je voudrais corriger cette date.
Merci d'avance
Windows / Chrome 129.0.0.0
- Changer les dates d une série d'image
- Changer dns - Guide
- Image iso - Guide
- Nombre de jours entre deux dates excel - Guide
- Changer carte graphique - Guide
- Légender une image - Guide
3 réponses
Bonjour
Ta question ne concerne pas le PHP, mais exiftool en ligne de commande.
exiftool -P -overwrite_original "-AllDates<Filename" "-FileCreateDate<Filename" "-FileModifyDate<Filename" Y:\!temp\bbbb\img-20151204-wa0002.jpg
Merci de ta réponse.
Je connais ExifTool mais il faut aller sur la ligne de commande et Exiftool que des paramètres soient présents et sur 2.000 photos mon PHP peut faire l'un pourquoi, pas l'autre. Tu es programmeur, alors la force avec PHP en local, c'est de pouvoir mettre la date qui lui correspond en fonction du nom d'image, tu vois l'avantage ;-)
Merci de m'avoir lu et bon week-end à venir ...
Pour être plus précis, je te remets après changement et t'explique ce que cela donne (en PHP) local donc sur mon Windows 11 :
Avec ce code PHP:
<?php $directory = 'C:/mesdocum/EasyPHP-5.3.2/www/exifimg'; function modifyImageDate($file, $newDate) { touch($file, strtotime($newDate)); if (exif_imagetype($file) == IMAGETYPE_JPEG) { $command = "exiftool -DateTimeOriginal=\"$newDate\" -CreateDate=\"$newDate\" -FileCreateDate=\"$newDate\" -overwrite_original \"$file\""; shell_exec($command); echo "Date de création et de modification modifiées pour : $file\n"; } } $newDate = '2021-01-01 12:00:00'; if ($handle = opendir($directory)) { while (false !== ($file = readdir($handle))) { $filePath = $directory . '/' . $file; if (is_file($filePath)) { modifyImageDate($filePath, $newDate); } } closedir($handle); } else { echo "Impossible d'ouvrir le répertoire.\n"; } ?>
Voila le plus précisément où j'en suis, ça progresse. Je n'ai aucun message d'erreur. Le résultat incohérent à mon sens :
- la date de prise de vue est aujourd'hui ! Elle est bien changée mais ça n'est pas la date du script
- la date de "Modifié le" est celle indiquée dans le script ! OK
Modération : réécriture partielle du message + mise en forme du code (merci d'utiliser PHP au lieu d'HTML)