Skip to content

EXIF : extraire les métadonnées et la localisation GPS d'une photo

Les fichiers image produits par un appareil photo ou un smartphone contiennent bien plus que des pixels. Le format EXIF (Exchangeable Image File Format) stocke des métadonnées techniques et contextuelles dans le fichier lui-même : modèle d’appareil, réglages d’exposition, date et heure, et souvent les coordonnées GPS de la prise de vue.

Le standard EXIF définit des champs couvrant trois domaines :

Informations sur l’appareil

  • Marque et modèle (ex. Apple iPhone 15 Pro)
  • Version du firmware
  • Objectif utilisé

Paramètres de prise de vue

  • Date et heure (souvent au format non UTC — fuseau horaire de l’appareil)
  • Vitesse d’obturation, ouverture, ISO
  • Orientation de l’image

Localisation GPS — quand le service de localisation est actif sur l’appareil au moment de la prise de vue :

  • Latitude et longitude
  • Altitude
  • Direction de visée (bearing)
  • Vitesse de déplacement

La plupart des smartphones activent le GPS par défaut dans l’application caméra. L’utilisateur ne voit pas ces données s’inscrire dans le fichier, et elles survivent aux partages par e-mail ou téléchargement direct.

Terminal window
# Debian / Ubuntu
sudo apt-get install libimage-exiftool-perl
# macOS
brew install exiftool
Terminal window
exiftool photo.jpg

Résultat partiel typique :

ExifTool Version Number : 12.76
File Name : photo.jpg
File Size : 4.2 MB
Image Width : 4032
Image Height : 3024
Make : Apple
Camera Model Name : iPhone 15 Pro
Software : 17.2.1
Date/Time Original : 2024:01:15 14:23:07
GPS Latitude Ref : N
GPS Latitude : 48 deg 51' 30.24" N
GPS Longitude Ref : E
GPS Longitude : 2 deg 17' 40.92" E
GPS Altitude : 35.2 m Above Sea Level
GPS Speed : 0 km/h
GPS Img Direction : 214.3
Terminal window
# Afficher uniquement les champs GPS
exiftool -GPS* photo.jpg
# Obtenir les coordonnées en décimal (format exploitable directement)
exiftool -GPSPosition photo.jpg
# → GPS Position : 48.8584, 2.2947
# Extraire sur plusieurs fichiers en une passe
exiftool -GPSPosition *.jpg
Terminal window
# Extraire les coordonnées de toutes les images d'un répertoire
exiftool -GPSLatitude -GPSLongitude -FileName -r ./photos/
# Exporter en CSV
exiftool -csv -GPSLatitude -GPSLongitude -FileName ./photos/ > coordonnees.csv

Convertir les coordonnées pour les placer sur une carte

Section titled “Convertir les coordonnées pour les placer sur une carte”

Les coordonnées EXIF sont en degrés, minutes, secondes (DMS). Google Maps et OpenStreetMap attendent du décimal (DD).

Conversion manuelle :

48° 51' 30.24" N → 48 + (51/60) + (30.24/3600) = 48.8584
2° 17' 40.92" E → 2 + (17/60) + (40.92/3600) = 2.2947

exiftool produit directement le décimal avec l’option -n :

Terminal window
exiftool -n -GPSLatitude -GPSLongitude photo.jpg
# GPS Latitude : 48.8584
# GPS Longitude : 2.2947

Coller ces valeurs dans Google Maps (48.8584, 2.2947) affiche la position exacte.

Ce qu’on peut déduire au-delà du point GPS

Section titled “Ce qu’on peut déduire au-delà du point GPS”

Les métadonnées EXIF permettent d’établir :

  • Un historique de déplacements si plusieurs photos sont analysées : domicile, lieu de travail, habitudes
  • Un fuseau horaire approximatif via l’heure de prise de vue
  • Le matériel utilisé : modèle de téléphone, utile pour recouper d’autres informations
  • La direction de prise de vue (GPS Img Direction) : orienter la photo dans l’espace pour identifier un bâtiment ou une rue

strings extrait toutes les séquences de caractères ASCII lisibles d’un fichier binaire. Sur une image, il révèle des métadonnées textuelles, des chemins de fichiers embarqués, des commentaires, ou des données cachées qui n’apparaissent pas dans la sortie formatée d’exiftool.

Terminal window
strings photo.jpg

Filtrer sur les champs intéressants :

Terminal window
# Chercher des chemins de fichiers ou des URLs
strings photo.jpg | grep -E "(http|https|/home|/var|C:\\\\)"
# Chercher des adresses e-mail
strings photo.jpg | grep -E "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"
# Chercher du texte dans les commentaires EXIF
strings photo.jpg | grep -i "comment"

Le format EXIF embarque souvent une ou plusieurs miniatures (thumbnails) dans le fichier image. Ces miniatures sont des images JPEG indépendantes stockées dans les métadonnées — elles peuvent contenir leurs propres données EXIF et différer de l’image principale.

Terminal window
exiftool -b -ThumbnailImage photo.jpg > thumbnail.jpg

L’option -b force la sortie en binaire brut. Le fichier thumbnail.jpg produit est une image JPEG valide, ouvrable directement.

Certains appareils ou logiciels de retouche stockent plusieurs niveaux de miniatures dans le même fichier. La miniature extraite peut elle-même contenir une miniature, qui peut à son tour en contenir une autre. Chaque niveau peut porter ses propres métadonnées EXIF — potentiellement différentes de celles de l’image principale.

La procédure à répéter à chaque niveau :

Terminal window
# Étape 1 — extraire la miniature de l'image originale
exiftool -b -ThumbnailImage photo.jpg > thumb1.jpg
# Étape 2 — vérifier si la miniature contient elle-même des métadonnées
exiftool thumb1.jpg
# Étape 3 — extraire la miniature de la miniature si elle en contient une
exiftool -b -ThumbnailImage thumb1.jpg > thumb2.jpg
# Répéter jusqu'à ce qu'aucune miniature ne soit trouvée

Vérifier également les autres champs d’image embarqués :

Terminal window
# Lister tous les champs binaires disponibles dans le fichier
exiftool -b -list photo.jpg
# Extraire une prévisualisation alternative (PreviewImage)
exiftool -b -PreviewImage photo.jpg > preview.jpg
# Extraire une image JPEG embarquée (JpgFromRaw sur certains RAW)
exiftool -b -JpgFromRaw photo.jpg > embedded.jpg

Supprimer les métadonnées avant de partager

Section titled “Supprimer les métadonnées avant de partager”
Terminal window
# Supprimer toutes les métadonnées d'une image
exiftool -all= photo.jpg
# Supprimer uniquement les données GPS
exiftool -GPS*= photo.jpg
# Traiter un répertoire entier
exiftool -all= ./photos/

Les plateformes comme Twitter, Instagram ou LinkedIn suppriment les EXIF à l’upload. Ce n’est pas le cas de tous les services : un fichier joint à un e-mail, partagé via un lien de téléchargement direct, ou posté sur un forum conserve ses métadonnées intactes.

Une photo prise avec un smartphone et partagée sans nettoyage préalable peut révéler une adresse précise. exiftool extrait ces informations en une commande. Supprimer les métadonnées avant tout partage public est une précaution élémentaire.