pense-bête de bruno sanchiz

Accueil > programmes > Images, Sons, Vidéos > accéder/changer les données exif

accéder/changer les données exif

Publié le 2 août 2016, dernière mise-à-jour le 30 juin 2023.

Avec exiv2 on accède,change les données exif.
Avec gpscorrelate-gui on crée les coodonnées GPS/latitude/longitude avec les images à partir des dates en utilsant comme référence un fichier gpx qui contient date et coordonnées.

Installation

apt-get install exiv2 gpscorrelate-gui

Lecture des données

exiv2 -pt a.jpg

Ajout de 4’5"33,54N

exiv2 -M"add Exif.GPSInfo.GPSLatitudeRef N"  -M"add Exif.GPSInfo.GPSLatitude 4/1 15/1 3354/100"  a.jpg

changement de la date/heure

d=’2019:07:09 12:21:33’ ;
exiv2 -M"set Exif.Image.DateTime $d" -M"set Exif.Photo.DateTimeOriginal $d" -M"set Exif.Photo.DateTimeDigitized $d" -M"set Exif.GPSInfo.GPSTimeStamp $d" a.jpg

Changement

exiv2 -M"set Exif.GPSInfo.GPSLatitudeRef N" _MG_6633.JPG

exiv2 -M"set Exif.Canon.OwnerName dindoun" _MG_7194.JPG

Destruction

exiv2 -M"del Exif.GPSInfo.GPSLatitudeRef" a.jpg

changement de dates de photos par groupe

Imaginons un groupe d’images successives.
La première photo : fich="_MG_26640.JPG" ; exiv2 -q -pt "$fich"|igrep date donne

Exif.Image.DateTime                          Ascii      20  2000:01:01 00:00:10
Exif.Photo.DateTimeOriginal                  Ascii      20  2000:01:01 00:00:10
Exif.Photo.DateTimeDigitized                 Ascii      20  2000:01:01 00:00:10

Sa vraie date est 2023:06:18 14:00:00.
On commence par calculer la différence en secondes :
diff=$(echo $(date -d "2023-06-18 14:00:00" "+%s")-$(date -d "2000-01-01 00:00:10" "+%s")|bc)
On change le fichier
fich="_MG_26640.JPG" ; exiv2 -q -pt "$fich"|igrep date|while read ligne;do dateYYYMMJJHHMMSS="$(echo $ligne|sed 's#^\([^ ]*\)\(.*\)\([0-9][0-9][0-9][0-9]\):\([0-9][0-9]\):\([0-9][0-9]\) \([0-9][0-9]\):\([0-9][0-9]\):\([0-9][0-9]\)$#\3-\4-\5 \6:\7:\8#' )";clef="$(echo $ligne|sed 's#^\([^ ]*\)\(.*\)\([0-9][0-9][0-9][0-9]\):\([0-9][0-9]\):\([0-9][0-9]\) \([0-9][0-9]\):\([0-9][0-9]\):\([0-9][0-9]\)$#\1#' )";dateUnix=$(date "+%s" -d "$dateYYYMMJJHHMMSS");dateExiv2=$(date --date="@$(echo $dateUnix'+'$diff|bc)" +"%Y:%m:%d %H:%M:%S");exiv2 -q -M"set ${clef} $dateExiv2" "$fich";done

On change les fichiers du dossier
find . -maxdepth 1 -type f |while read fich; do echo -n "$fich""; "; exiv2 -q -pt "$fich"|igrep date|while read ligne;do dateYYYMMJJHHMMSS="$(echo $ligne|sed 's#^\([^ ]*\)\(.*\)\([0-9][0-9][0-9][0-9]\):\([0-9][0-9]\):\([0-9][0-9]\) \([0-9][0-9]\):\([0-9][0-9]\):\([0-9][0-9]\)$#\3-\4-\5 \6:\7:\8#' )"; clef="$(echo $ligne|sed 's#^\([^ ]*\)\(.*\)\([0-9][0-9][0-9][0-9]\):\([0-9][0-9]\):\([0-9][0-9]\) \([0-9][0-9]\):\([0-9][0-9]\):\([0-9][0-9]\)$#\1#' )"; dateUnix=$(date "+%s" -d "$dateYYYMMJJHHMMSS"); dateExiv2=$(date --date="@$(echo $dateUnix'+'$diff|bc)" +"%Y:%m:%d %H:%M:%S"); exiv2 -q -M"set ${clef} $dateExiv2" "$fich"; done ; done

geotag

gpscorrelate-gui écrit la position dans l’exif de la photo à partir d’un positionnement gps ( .gpx) obtenu :
exemple de tag gps :

Exif.Image.GPSTag Long 1 9430
Exif.GPSInfo.GPSVersionID Byte 4 2.0.0.0
Exif.GPSInfo.GPSLatitudeRef Ascii 2 North
Exif.GPSInfo.GPSLatitude Rational 3 49deg 25’ 34.150"
Exif.GPSInfo.GPSLongitudeRef Ascii 2 East
Exif.GPSInfo.GPSLongitude Rational 3 1deg 14’ 41.360"
Exif.GPSInfo.GPSAltitudeRef Byte 1 Above sea level
Exif.GPSInfo.GPSAltitude Rational 1 68.6 m
Exif.GPSInfo.GPSTimeStamp SRational 3 11:35:56
Exif.GPSInfo.GPSMapDatum Ascii 7 WGS-84
Exif.GPSInfo.GPSDateStamp Ascii 11 2015:04:09

enlever les données exif

jhead -autorot -purejpg a.jpg : marche très bien.
non essayé : exiftool -all= image.jpg

enlever les données de toutes les images d’un dossier :

find dossier -maxdepth 1 -type f -exec jhead -autorot -purejpg "{}" \;

lecture des données exif

On peut par exemple utiliser le visionneur d’image geeqie puis CTRL+E

darktable :

voir aussi exif et darktable

gimp

ouvre la photo, dans le menu image , sous menu métadonnées, afficher les métadonnées.

windows

essayer clic droit, propriétés, détails ( d’après https://www.howtogeek.com/289712/how-to-see-an-images-exif-data-in-windows-and-macos/ )

[bruno sanchiz]