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.
Ce que contient EXIF
Section titled “Ce que contient EXIF”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.
Extraire les métadonnées avec exiftool
Section titled “Extraire les métadonnées avec exiftool”Installation
Section titled “Installation”# Debian / Ubuntusudo apt-get install libimage-exiftool-perl
# macOSbrew install exiftoolLecture de toutes les métadonnées
Section titled “Lecture de toutes les métadonnées”exiftool photo.jpgRésultat partiel typique :
ExifTool Version Number : 12.76File Name : photo.jpgFile Size : 4.2 MBImage Width : 4032Image Height : 3024Make : AppleCamera Model Name : iPhone 15 ProSoftware : 17.2.1Date/Time Original : 2024:01:15 14:23:07GPS Latitude Ref : NGPS Latitude : 48 deg 51' 30.24" NGPS Longitude Ref : EGPS Longitude : 2 deg 17' 40.92" EGPS Altitude : 35.2 m Above Sea LevelGPS Speed : 0 km/hGPS Img Direction : 214.3Extraire uniquement les coordonnées GPS
Section titled “Extraire uniquement les coordonnées GPS”# Afficher uniquement les champs GPSexiftool -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 passeexiftool -GPSPosition *.jpgTraiter un lot de photos
Section titled “Traiter un lot de photos”# Extraire les coordonnées de toutes les images d'un répertoireexiftool -GPSLatitude -GPSLongitude -FileName -r ./photos/
# Exporter en CSVexiftool -csv -GPSLatitude -GPSLongitude -FileName ./photos/ > coordonnees.csvConvertir 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.85842° 17' 40.92" E → 2 + (17/60) + (40.92/3600) = 2.2947exiftool produit directement le décimal avec l’option -n :
exiftool -n -GPSLatitude -GPSLongitude photo.jpg# GPS Latitude : 48.8584# GPS Longitude : 2.2947Coller 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
Inspecter le contenu brut avec strings
Section titled “Inspecter le contenu brut avec strings”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.
strings photo.jpgFiltrer sur les champs intéressants :
# Chercher des chemins de fichiers ou des URLsstrings photo.jpg | grep -E "(http|https|/home|/var|C:\\\\)"
# Chercher des adresses e-mailstrings photo.jpg | grep -E "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"
# Chercher du texte dans les commentaires EXIFstrings photo.jpg | grep -i "comment"Extraire les miniatures embarquées
Section titled “Extraire les miniatures embarquées”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.
Extraire la miniature principale
Section titled “Extraire la miniature principale”exiftool -b -ThumbnailImage photo.jpg > thumbnail.jpgL’option -b force la sortie en binaire brut. Le fichier thumbnail.jpg produit est une image JPEG valide, ouvrable directement.
Miniatures imbriquées
Section titled “Miniatures imbriquées”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 :
# Étape 1 — extraire la miniature de l'image originaleexiftool -b -ThumbnailImage photo.jpg > thumb1.jpg
# Étape 2 — vérifier si la miniature contient elle-même des métadonnéesexiftool thumb1.jpg
# Étape 3 — extraire la miniature de la miniature si elle en contient uneexiftool -b -ThumbnailImage thumb1.jpg > thumb2.jpg
# Répéter jusqu'à ce qu'aucune miniature ne soit trouvéeVérifier également les autres champs d’image embarqués :
# Lister tous les champs binaires disponibles dans le fichierexiftool -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.jpgSupprimer les métadonnées avant de partager
Section titled “Supprimer les métadonnées avant de partager”# Supprimer toutes les métadonnées d'une imageexiftool -all= photo.jpg
# Supprimer uniquement les données GPSexiftool -GPS*= photo.jpg
# Traiter un répertoire entierexiftool -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.
À retenir
Section titled “À retenir”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.