Un fichier "image" issu d'un appareil photo numérique contient plus qu'une simple image. On trouve en effet des informations sur l'image elle-même (définition, résolution...) mais aussi des informations sur la prise de vue (date et heure, lieu...). Cette spécification des fichiers "image" d'un appareil photo numérique s'appelle EXIF (EXchangeable Image file Format). Ces données contenues dans un fichier "image" d'un appareil photo s'appellent des métadonnées.

La plupart des logiciels de retouche photo permettent de lire ces métadonnées. Nous n'allons pas utiliser ce type de logiciel, nous allons plutôt écrire un petit programme Python (plus précisément, nous utiliserons la bibliothèque Python "PIL").

À faire vous-même 1

Créez un dossier nommé "exif", enregistrez l'image suivante : "photo.jpg"(clic droit, "Enregistrer sous") dans ce dossier "exif".

À faire vous-même 2

En utilisant le logiciel Spyder, saisissez et testez le programme suivant (il faudra enregistrer le fichier contenant ce programme dans le dossier "exif" ) :


import PIL.Image
img = PIL.Image.open('photo.jpg')
exif_data = img._getexif()
			

Après avoir exécuté le programme, utilisez l'"Explorateur de variables" de Spyder, pour analyser le contenu de la variable "exif_data", vous devriez avoir quelque chose qui ressemble à cela :

pixel

À faire vous-même 3

Comme vous pouvez le constater, nous avons un système clé:valeur (à chaque clé correspond une valeur). Les clés sont "codées" par des nombres, pour comprendre la signification de ces nombres, consultez le site http://www.exiv2.org/tags.html.

En vous aidant du site web cité ci-dessus, essayez de trouver les informations suivantes pour l'image "photo.jpg" :

La clé "34853" n'est pas tout le temps présente puisqu'il s'agit des coordonnées (latitude, longitude) de la prise de vue, il faut donc que l'appareil photo intègre un GPS (ce qui est le cas des smartphones), si nous double-cliquons sur cette clé "34853", nous obtenons les informations suivantes :

pixel

Les lignes 1, 2, 3 et 4 vont particulièrement nous intéresser :

Pour convertir des (degrés, minute, seconde aussi noté DMS) en "degrés décimaux" (DD) (unité que nous avons utilisée dans le module "cartographie"), il faut appliquer la formule suivante :


DD = degrés+(minute/60)+(seconde/3600)
			

ATTENTION : pour que la conversion soit correcte, il faut ajouter un signe moins devant la longitude au format DD si nous sommes situés à l'ouest du méridien de Greenwich.

À faire vous-même 4

En vous aidant de ce qui a été expliqué ci-dessus et de ce que vous avez vu dans le module "cartographie", écrivez un programme Python permettant de générer une carte Open Street Map avec un marqueur situé à l'endroit où a été prise la photo "photo.jpg"


À faire vous-même 5

Recommencez ce qui a été demandé dans le "À faire vous-même 4" avec, par exemple, une photo prise avec votre smartphone.


Auteur : David Roche