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
- Lancer
- Se rendre dans le dossier Documents
- Créer le dossier NSI s'il n'existe pas
- Dans le dossier NSI, créer le dossier chapitre_11
- Dans le dossier chapitre_11, créer le dossier tp1_exif
🖥 Ordinateur fixe des salles informatiques
- Depuis le bureau, cliquer sur l'icône intitulée Zone personnelle
- Créer le dossier NSI s'il n'existe pas
- Dans le dossier NSI, créer le dossier chapitre_11
- 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 :
- Télécharger le fichier ZIP contenant les fichiers du TP : 📦 télécharger
- Ouvrir le fichier ZIP
- Copier/coller tous les fichiers dans le dossier
NSI\chapitre_11\tp1_exif
Exercice 1 - Test de lecture
- Ouvrir le fichier
exif.py - Lire la docstring de la fonction
extraire_exif - Installer la bibliothèque Pillow si elle n'est pas déjà présente sur votre machine
- Ouvrir le fichier
main.py(vide) - Importer le module
exif - Afficher la valeur de retour de l'appel de fonction
extraire_exifsur le fichierphoto.jpg
- Confirmez-vous qu'un dictionnaire a été renvoyé par la fonction ?
- Observez-vous des informations intéressantes ? Quels sont les descripteurs (clé) ?
Attention, le fichier exif.py NE DOIT PAS ÊTRE MODIFIÉ. Tout le travail est à effectuer dans le fichier main.py.
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 fichierphoto.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é.
- Ouvrir le fichier
main.py - Supprimer l'appel de test de la fonction
extraire_exifde l'exercice 1 - Écrire la fonction
afficher_descripteurs_exifqui a pour paramètrenom_fichieret qui affiche l'ensemble des clés du dictionnaire renvoyé par la fonctionextraire_exif. - 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
- Ouvrir le fichier
main.py - Écrire la fonction
afficher_appareilqui a pour paramètrenom_fichieret qui affiche ces trois informations - 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
...
- Ouvrir le fichier
main.py - Écrire la fonction
afficher_exifqui a pour paramètrenom_fichieret qui affiche l'ensemble des informations EXIF sous la forme souhaitée. - Tester la fonction dans la console Python en l'appelant sur le fichier
photo.jpg
Tester la fonction afficher_exif sur une autre photo de votre choix, provenant de votre téléphone ou trouvée sur le Web.