Voici comment changer la date dâun fichier image (type JPEG) Ă partir de la date EXIF contenu dans le fichier.
Avec la commande « exiv2 »
-
Extrait du manuel de « exiv2 »
NOM exiv2 â Outil de manipulation de mĂ©tadonnĂ©es dâimage SYNOPSIS exiv2 [options] [action] fichier ⊠DESCRIPTION exiv2 est un programme pour lire et Ă©crire des mĂ©tadonnĂ©es dâimage Exif, IPTC et XMP et des commentaires dâimage. Les formats dâimage suivants sont pris en charge : [âŠ] -v | --verbose Affichage verbeux [âŠ] mv | rename Renomme les fichiers et/ou dĂ©finit les horodatages des fichiers en fonction de lâhorodatage de crĂ©ation Exif. Utilise la valeur de la balise « Exif.Photo.DateTimeOriginal » ou, si elle nâest pas prĂ©sente, « Exif.Image.DateTime » pour dĂ©terminer lâhorodatage. Le format du nom de fichier peut ĂȘtre dĂ©fini avec -r fmt, les options d'horodatage sont -t et -T. [âŠ] -T DĂ©finis uniquement lâhorodatage du fichier en fonction de lâhorodatage de crĂ©ation Exif, ne renomme pas le fichier (remplace `-k`). Cette option ne peut ĂȘtre utilisĂ©e quâavec lâaction `rename`. Remarque : sous Windows, vous aurez, peut-ĂȘtre, Ă configurer la variable dâenvironnement `TZ` pour que cette option fonctionne correctement.
Installation de « exiv2 »
La commande exiv2 ne fait pas nĂ©cessairement partie des commandes prĂ©sentes, sous Linux, plus prĂ©cisĂ©ment les dĂ©rivĂ©s de Debian, elle sâinstalle Ă l'aide du paquet exiv2 :
sudo apt install -y exiv2
La syntaxe pour une seule image
Pour faire lâopĂ©ration sur une seule image, la syntaxe est assez simple :
exiv2 -T rename image.jpg
La syntaxe pour un ensemble de dossier
Si vous souhaitez généraliser à un dossier (et ses fils récursivement) vous pouvez utiliser quelque chose comme ça :
find REPERTOIRE -type f -iname '*.jpg' -exec exiv2 -v -T rename {} \;
ou en définissant une fonction :
function change_file_created_date_from_exif {
local -r dir="$1"
find "${dir}" -type f -iname '*.jpg' -exec exiv2 -v -T rename {} \;
}
Avec la commande « exiftool »
La commande exiftool est outil trĂšs complet permettant de manipuler les donnĂ©es EXIF, l'insttation se fait Ă l'aide du paquet libimage-exiftool-perl, pour plus de dĂ©tail sur lâinstallation dâExifTool voir le billet đ· Extraire les vignettes EXIF.
Pour changer la date dâune seule image, la syntaxe est nâest pas complĂštement triviale :
exiftool '-DateTimeOriginal>FileModifyDate' image.jpg
Pour traiter un dossier complet, vous pouvez utiliser la fonction suivante :
function change_file_created_date_from_exif {
local -r dir="$1"
find "${dir}" -type f -iname '*.jpg' -exec exiftool '-DateTimeOriginal>FileModifyDate' {} \;
}
On peut mĂȘme se passer de la commande find, et ne modifier le fichier que si la date change :
function change_file_created_date_from_exif {
local -r dir="$1"
exiftool '-DateTimeOriginal>FileModifyDate' -r -if '$datetimeoriginal ne substr($filemodifydate,0,19)' -ext jpg "${dir}" || return $?
}
Notez que la syntaxe -FileModifyDate<DateTimeOriginal
aura l'effet inverse, et mettra comme date de création de l'image la date de derniÚre modification sur le disque, ce qui peut également avoir du sens.
Et les vidéos ?
Certain formats vidĂ©o inclus la notion de mĂ©tadonnĂ©es, pensez Ă regarder la documentation de lâoutil que vous avez choisi pour savoir sâil supporte le format vidĂ©o que vous utilisez.
Liens
- Change file created date from JPEG EXIF metadata,
- Le site officiel d'exiftool.
- Change filemodifydate to datetimeoriginal if it's not the same
኿