/*---------------------------------------------------------------------------*/
/* TYPES */

/* identificateurs des images */
typedef enum {SOURCE, DESTINATION} utv_gd_image ;

/*---------------------------------------------------------------------------*/
/* FONCTIONS */

/*---------------------------------------------------------------------------*/
/* IMAGE SOURCE */

/* chargement d'une image */
void utv_gd_charger_image(char* pnom);

/*---------------------------------------------------------------------------*/
/* IMAGE DESTINATION */

/* creation d'une image destination de taille identique a l'image source */
void utv_gd_copie_image(char* pnom);

/* creation d'une image destination de taille pl x ph */
void utv_gd_nouvelle_image(char* pnom, int pl, int ph);

/* ajouter une nouvelle couleur RVB a l'image destination */
int utv_gd_nouvelle_couleur(int pr, int pv, int pb);

/* changer la couleur pc d'un pixel a la position (px, py) */
void utv_gd_pixel(int px, int py, int pc);

/* sauver l'image destination au format PNG */
void utv_gd_sauver_image(char* pnom);

/*---------------------------------------------------------------------------*/
/* FONCTIONS COMMUNES */
/* toutes, sauf quitter(), sont conditionnees par image_courante() */

/* avant de quitter le programme */
void utv_gd_quitter(void);

/* passage d'une image a l'autre */
void utv_gd_image_courante(utv_gd_image pf);

/* retourne la largeur de l'image courante */
int utv_gd_quelle_largeur(void);

/* retourne la hauteur de l'image courante */
int utv_gd_quelle_hauteur(void);

/* retourne le nombre de couleurs */
int utv_gd_combien_couleurs(void);

/* recupere les 3 composantes R, V, B d'un pixel */
void utv_gd_quelle_couleur(int px, int py, int* pr, int* pv, int* pb);

/* retourne l'index de la couleur du pixel a la position (px, py) */
/* A CONSERVER ? */
int utv_gd_quel_index(int px, int py);

/* retourne le nom de l'image courante */
char* utv_gd_quel_nom(void);
