"""
Programme   : TP-images-partie2-exo1.py
Langage     : Python 3
Modules     : Pillow, matplotlib
Auteur      : ...
Description : gestion des exceptions, manipulation d'images et tracé de courbes
Pillow      : https://pillow.readthedocs.io/en/stable/
matplotlib  : https://matplotlib.org/index.html

Vous pouvez travailler sur l'image retaillée dans le TP précédent perroquet.png} ou tout autre
image de votre choix. Toutefois, veillez à disposer d'une image dont les dimensions sont
raisonnables car le parcours de l'image pixel par pixel est coûteux en terme de performance.

Exercice à réaliser :
	1) La fonction afficher_infos du TP précédent souffre de certaines lacunes. Elle lève notamment
	une exception de type AttributeError: 'Image' object has no attribute 'filename' si l'image
	passée en paramètre est une image créée par vos soins.
	Implémenter un mécanisme de gestion d'exceptions permettant de résoudre cette problématique.

	2) Ecrire une fonction afficher_histogramme(pimg) qui affiche l'histogramme des couleurs d'une
	image tel que représentées sur les figures 7 et 8 de l'énoncé du TP.
"""

# IMPORT =========================================================================================
from PIL import Image
from matplotlib import pyplot

# FONCTIONS =======================================================================================
def afficher_info(pimg):
	"""
	Description : 	affiche des informations sur l'image passée en paramètre
	Paramètres 	: 	PIL.Image(pimg)
	Retour 		: 	aucun
	"""
	pass

def afficher_histogramme(pimg):
	"""
	Description : 	affiche l'histogramme des couleurs sous forme de courbe dans le même repère
	Paramètres 	: 	PIL.Image(pimg)
	Retour 		: 	aucun
	"""
	pass

def afficher_histogramme_barres(pimg):
	"""
	Description : 	affiche les histogrammes de chaque canal sous forme de diagramme en barres
	Paramètres 	: 	PIL.Image(pimg)
	Retour 		: 	aucun
	"""
	pass

# PROGRAMME PRINCIPAL =============================================================================
# Question 1
img_en_memoire = Image.new("RGB", (100, 100))
afficher_info(img_en_memoire)

# Question 2
img = Image.open("perroquet.png")
afficher_info(img)
print("Création du diagramme de distribution des couleurs en cours...")
afficher_histogramme(img)
