import os
import skimage
from skimage import io
import matplotlib.pyplot as plt
import numpy as np

os.chdir()   # Définir le répertoire de travail ici

#------------------------------------------------------------------------------
#  Lecture d'un fichier image au format png. Sous Pyzo le type des
#  des éléments des matrices R, V et B est float 32 bits : flottants simple
#  précision compris entre 0 et 1. On les tranforme en entier compris en 0
#  et 255.
# ----------------------------------------------------------------------------
#
def getImage(nomFichier) :
    """Cette fonction renvoie un triplet de 3 matrices R, V et B de même
    dimension L x C qui correspondent aux trois couleurs de base
    rouge, vert et bleu de l'image. Cette image est située dans le fichier
    nomFichier d'extension .png obligatoire. L'image possède L lignes et C
    colonnes de pixels."""

    npImage = plt.imread(nomFichier)
    npImage = 255*npImage    # Lecture avec Pyzo

    R = npImage[ : , : ,0]
    V = npImage[ : , : ,1]
    B = npImage[ : , : ,2]

    return R, V, B

#------------------------------------------------------------------------------
#   Fonction qui enregistre un fichier image au format png. On commence par
#   par convertir les éléments des matrices R, V, B en flottants avant
#   l'enregistrement sur fichier.
#------------------------------------------------------------------------------

def saveImage(nomFichier, R, V, B) :
    """ Enregistre l'image contenue dans les trois matrices R, V et B, de type
    (ligne, colonne) dans un fichier nomFichier d'extension .png obligatoire.

    Cette fonction ne retourne rien. """

    n = R.shape
    npImage = np.zeros( (n[0], n[1], 3 ))

    npImage[ : , : , 0] = R/255
    npImage[ : , : , 1] = V/255
    npImage[ : , : , 2] = B/255
    plt.imsave(nomFichier, npImage)

#-----------------------------------------------------------------------------
#-------------------  Début du programme -------------------------------------
#-----------------------------------------------------------------------------

