Aller au contenu principal

Données EXIF

👨‍🏫 Introduction

Objectif

EXIF (EXchangeable Image file Format) est une spécification de métadonnées intégrées aux images au format JPEG ou TIFF produites par les appareils photographiques numériques.

L'objectif de ces travaux pratiques est de lire des données EXIF en provenance d'une image fournie au format JPEG. Cela nécessitera l'utilisation des fonctions de parcours d'un dictionnaire.

Préparation

Afin de garder organisées les productions réalisées en travaux pratiques, veuillez mettre à jour l'arborescence du dossier NSI en fonction l'ordinateur utilisé :

💻 Ordinateur portable
  1. Lancer
  2. Se rendre dans le dossier Documents
  3. Créer le dossier NSI s'il n'existe pas
  4. Dans le dossier NSI, créer le dossier chapitre_11
  5. Dans le dossier chapitre_11, créer le dossier tp1_exif
🖥 Ordinateur fixe des salles informatiques
  1. Depuis le bureau, cliquer sur l'icône intitulée Zone personnelle
  2. Créer le dossier NSI s'il n'existe pas
  3. Dans le dossier NSI, créer le dossier chapitre_11
  4. Dans le dossier chapitre_11, créer le dossier tp1_exif

Téléchargement des fichiers

Pour effectuer ce TP, il est nécessaire de télécharger certains fichiers :

  1. Télécharger le fichier ZIP contenant les fichiers du TP : 📦 télécharger
  2. Ouvrir le fichier ZIP
  3. Copier/coller tous les fichiers dans le dossier NSI\chapitre_11\tp1_exif

Exercice 1 - Test de lecture

  1. Ouvrir le fichier exif.py
  2. Lire la docstring de la fonction extraire_exif
  3. Installer la bibliothèque Pillow si elle n'est pas déjà présente sur votre machine
  4. Ouvrir le fichier main.py (vide)
  5. Importer le module exif
  6. Afficher la valeur de retour de l'appel de fonction extraire_exif sur le fichier photo.jpg
Observations
  • Confirmez-vous qu'un dictionnaire a été renvoyé par la fonction ?
  • Observez-vous des informations intéressantes ? Quels sont les descripteurs (clé) ?
Module exif

Attention, le fichier exif.py NE DOIT PAS ÊTRE MODIFIÉ. Tout le travail est à effectuer dans le fichier main.py.

En cas de problème avec Pillow

Si vous n'arrivez pas à installer la bibliothèque Pillow, suivez les instructions suivantes :

  • Se rendre sur le site web basthon.fr
  • Accéder à la console Python
  • Charger le fichier exif.py (en tant que module) ainsi que le fichier photo.jpg

Exercice 2 - Lecture des données EXIF

Les données EXIF telles qu'extraites du fichier photo.jpg, sont comparables à un p-uplet nommé représenté par un dictionnaire Python. Nous souhaitons disposer de la liste des descripteurs de ce p-uplet nommé.

  1. Ouvrir le fichier main.py
  2. Supprimer l'appel de test de la fonction extraire_exif de l'exercice 1
  3. Écrire la fonction afficher_descripteurs_exif qui a pour paramètre nom_fichier et qui affiche l'ensemble des clés du dictionnaire renvoyé par la fonction extraire_exif.
  4. Tester la fonction dans la console Python en l'appelant sur le fichier photo.jpg

Exercice 3 - Informations sur l'appareil de prise de vue

Nous souhaitons connaître la marque (Make) et le modèle (Model) de l'appareil utilisé pour prendre la photo ainsi que son objectif (LensModel).

Marque   :  Apple
Modèle : iPhone 8
Objectif : iPhone 8 back camera 3.99mm f/1.8
  1. Ouvrir le fichier main.py
  2. Écrire la fonction afficher_appareil qui a pour paramètre nom_fichier et qui affiche ces trois informations
  3. Tester la fonction dans la console Python en l'appelant sur le fichier photo.jpg

Exercice 4 - Intégralité des informations

Nous souhaitons disposer de toutes les informations EXIF sous la forme suivante :

ExifImageWidth = 4032
FocalLengthIn35mmFilm = 28
SceneCaptureType = 0
SubsecTimeOriginal = 255
...
  1. Ouvrir le fichier main.py
  2. Écrire la fonction afficher_exif qui a pour paramètre nom_fichier et qui affiche l'ensemble des informations EXIF sous la forme souhaitée.
  3. Tester la fonction dans la console Python en l'appelant sur le fichier photo.jpg
Observations

Tester la fonction afficher_exif sur une autre photo de votre choix, provenant de votre téléphone ou trouvée sur le Web.