Changer les dates d une série d'image
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 - 4 oct. 2024 à 20:38
- Changer les dates d une série d'image
- Changer dns - Guide
- Changer clavier qwerty en azerty - Guide
- Image iso - Guide
- Changer carte graphique - Guide
- Comment agrandir une image - Guide
3 réponses
Modifié le 4 oct. 2024 à 12:39
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
Modifié le 4 oct. 2024 à 12:40
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 ...
4 oct. 2024 à 06:31
bonjour,
Afin de pouvoir faire cela en PHP, il faut savoir comment ExifTool permet de faire cela en ligne de commande.
Sais-tu comment ExifTool permet de faire cela en ligne de commande?
Modifié le 4 oct. 2024 à 12:45
.... regarde les lignes 7 et 8 de ton code......
4 oct. 2024 à 14:31
La ligne de commande ExifTool change "la date de prise de vue"?
Si oui, je ferais un echo de $command, ce qui permet de tester cette commande dans une boîte de commande.
Modifié le 7 oct. 2024 à 11:02
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)
4 oct. 2024 à 16:24
Le résultat te semble incohérent.
Pourquoi?
Est-ce parce que la date de prise de vue est la date d'aujourd'hui et pas '2021-01-01 12:00:00'?
C'est toujours mieux d'être explicite.
Moi, je ferais un echo de $command, ce qui permet de tester cette commande dans une boîte de commande.
4 oct. 2024 à 16:30
Oui c'est ce que j'ai écrit j'aurais voulu que les deux dates deviennent identiques et fixée par moi !
A+FoxLeRenard
4 oct. 2024 à 20:38
Moi, je ferais un echo de $command, ce qui permet de tester cette commande dans une boîte de commande.