2014-05-08 17:44:09 +00:00
// Gestion de fichiers
void creer ( Image & sortie , unsigned int dimensionX , unsigned int dimensionY , unsigned int maxComposante , PILG_Comp typeComposantes ) { // Créer une image de dimensions X et Y
2014-05-05 19:00:08 +00:00
Image * nouvelle = new Image ( dimensionX , dimensionY , maxComposante , typeComposantes ) ;
sortie = * nouvelle ;
2014-04-14 10:02:13 +00:00
}
2014-05-05 19:00:08 +00:00
2014-05-08 17:44:09 +00:00
void ouvrir ( Image & sortie , string nomFichier ) { // Ouvrir une image existante à partir du nom du fichier ***Geoffrey
2014-04-14 10:02:13 +00:00
}
2014-05-05 19:00:08 +00:00
2014-05-08 17:44:09 +00:00
void sauver ( Image entree , string nomFichier , bool ASCII , string commentaire ) { // Sauvegarder l'image obtenue dans un nouveau fichier
2014-04-14 10:02:13 +00:00
}
2014-05-05 19:00:08 +00:00
2014-05-08 17:44:09 +00:00
void import ( Image entree , Image & sortie , string nomFichier , int x , int y ) {
2014-05-05 09:29:04 +00:00
// Image fichierImporte;
// sortie = entree
// ouvrir(fichierImporte, nomFichier)
// Pour x1 = 0 to x1 = fichierImporte.g_dimensionX
2014-05-05 19:00:08 +00:00
// Pour y1 = 0 to y1 = fichierImporte.g_dimensionY
// sortie.s_pixel(x1 + x, y1 + y, fichierImporte.g_pixel(x1, x2));
// FinPour
2014-05-08 17:44:09 +00:00
// FinPour
2014-04-14 10:02:13 +00:00
}
2014-03-27 18:03:14 +00:00
// Couleur
2014-05-08 17:44:09 +00:00
void teinte ( Image entree , Image & sortie , float teinte ) { // Change la teinte de l'image
2014-04-28 13:01:14 +00:00
// Si la teinte appartient à [0;1[
2014-05-05 19:00:08 +00:00
// r1 = 0
// r2 = 1
// v1 = 1
// v2 = 2
// b1 = 2
// b2 = 0
// Valeur = Teinte
2014-04-28 13:01:14 +00:00
// Sinon Si la teinte appartient à [1;2[
2014-05-05 19:00:08 +00:00
// r1 = 1
// r2 = 2
// v1 = 2
// v2 = 0
// b1 = 0
// b2 = 1
// Valeur = Teinte-1
2014-04-28 13:01:14 +00:00
// Sinon Si la teinte appartient à [2;3]
2014-05-05 19:00:08 +00:00
// r1 = 2
// r2 = 0
// v1 = 0
// v2 = 1
// b1 = 1
// b2 = 2
// Valeur = Teinte-2
2014-04-28 13:01:14 +00:00
// Fin Si
// Pour x=0 à x=image.getDimensionX()
2014-05-05 19:00:08 +00:00
// Pour y=0 à y=image.getDimensionY()
2014-05-08 17:44:09 +00:00
//
//
//
2014-05-05 19:00:08 +00:00
// pixel.r = r1+(r2-r1)*valeur
// pixel.v = v1+(v2-v1)*valeur
// pixel.b = b1+(b2-b1)*valeur
// Fin Pour
2014-04-28 13:01:14 +00:00
// Fin Pour
2014-04-14 10:02:13 +00:00
}
2014-05-08 17:44:09 +00:00
void saturation ( Image entree , Image & sortie , float saturation ) { // Sature l'image
2014-05-05 09:29:04 +00:00
// Pour x = image.g_DimensionX()
2014-05-05 19:00:08 +00:00
// Pour y = image.g_DimensionY()
// Ajouter la variable saturation à chaque valeur de chaque pixel
// Ne pas dépasser le seuil limite MaxComposante !!!
// Fin Pour
2014-04-28 13:01:14 +00:00
// Fin Pour
2014-04-14 10:02:13 +00:00
}
2014-05-05 19:00:08 +00:00
2014-05-08 17:44:09 +00:00
void luminosite ( Image entree , Image & sortie , float luminosite ) { // Augmente la luminosité de l'image
2014-04-28 13:01:14 +00:00
// Pour x=0 à x=image.g_DimensionX()
2014-05-05 19:00:08 +00:00
// Pour y=0 à y=image.g_DimensionY()
// si image.g_typeComposante=1
2014-05-08 17:44:09 +00:00
// pixel = image.g_pixel(x,y);
2014-05-05 19:00:08 +00:00
// pixel.g = luminosite*10+pixel.g;
2014-05-08 17:44:09 +00:00
// image.s_pixel(x, y, pixel);
2014-05-05 19:00:08 +00:00
// sinon si image.g_typeComposante=2
2014-05-08 17:44:09 +00:00
// pixel = image.g_pixel(x,y);
2014-05-05 19:00:08 +00:00
// pixel.r = luminosite*10+pixel.r;
// pixel.v = luminosite*10+pixel.v;
// pixel.b = luminosite*10+pixel.b;
2014-05-08 17:44:09 +00:00
// image.s_pixel(x, y, pixel);
2014-05-05 19:00:08 +00:00
// Fin si
// Fin Pour
2014-04-28 13:01:14 +00:00
// Fin Pour
2014-04-14 10:02:13 +00:00
}
2014-05-05 19:00:08 +00:00
2014-05-08 17:44:09 +00:00
void contraste ( Image entree , Image & sortie , float contraste ) { // Accentue les contrastes de l'image
2014-04-28 13:01:14 +00:00
// pour x=0 à x=image.g_dimensionX()
2014-05-05 19:00:08 +00:00
// pour y=0 à y=image.g_DimensionY()
// si image.g_typeComposante=1
2014-05-08 17:44:09 +00:00
// pixel = image.g_pixel(x,y);
2014-05-05 19:00:08 +00:00
// pixel.g = contraste*pixel.g;
// if pixel.g > Image.g_maxComposante
// pixel.g = Image.g_maxComposante
// end if
2014-04-14 10:02:13 +00:00
}
2014-03-27 18:03:14 +00:00
// Dessin
2014-05-08 17:44:09 +00:00
void trait ( Image entree , Image & sortie , int x1 , int y1 , int x2 , int y2 , Pixel pixel ) { // Dessine un trait d'un point (x1,y1) à un point (x2,y2)
2014-05-05 19:00:08 +00:00
// int x, y, dx, dy ;
// float e, e(1,0), e(0,1) ; // valeur d’ erreur et incréments
// dy ← y2 - y1 ;
// dx ← x2 - x1 ;
// y ← y1 ; // rangée initiale
// e ← 0,0 ; // valeur d’ erreur initiale
// e(1,0) ← dy / dx ;
// e(0,1) ← -1.0 ;
// pour x variant de x1 jusqu’ à x2 par incrément de 1 faire
// tracerPixel(x, y) ;
// si (e ← e + e(1,0)) ≥ 0,5 alors // erreur pour le pixel suivant de même rangée
// y ← y + 1 ; // choisir plutôt le pixel suivant dans la rangée supérieure
// e ← e + e(0,1) ; // ajuste l’ erreur commise dans cette nouvelle rangée
// fin si ;
// fin pour ;
//fin procédure ;
2014-05-05 09:29:04 +00:00
}
2014-05-05 19:00:08 +00:00
2014-05-08 17:44:09 +00:00
void rectangle ( Image entree , Image & sortie , int x1 , int y1 , int x2 , int y2 , Pixel couleur ) {
sortie = entree ;
for ( int x = x1 ; x < = x2 ; x + + ) {
for ( int y = y1 ; y < = y2 ; y + + ) {
sortie . s_pixel ( x , y , couleur ) ;
}
}
2014-04-14 10:02:13 +00:00
}
2014-05-05 19:00:08 +00:00
2014-05-08 17:44:09 +00:00
void cercle ( Image entree , Image & sortie , int x , int y , int r , Pixel couleur ) {
2014-04-14 10:02:13 +00:00
}
2014-05-05 19:00:08 +00:00
2014-05-08 17:44:09 +00:00
void disque ( Image entree , Image & sortie , int x , int y , int r , Pixel couleur ) {
2014-04-14 10:02:13 +00:00
}
2014-03-27 18:03:14 +00:00
// Geométrie
2014-05-08 17:44:09 +00:00
void zoom ( Image entree , Image & sortie ) {
2014-04-14 10:02:13 +00:00
}
2014-05-05 19:00:08 +00:00
2014-05-08 17:44:09 +00:00
void pivoter ( Image entree , Image & sortie ) {
2014-04-14 10:02:13 +00:00
2014-05-05 09:29:04 +00:00
}
2014-05-05 19:00:08 +00:00
2014-05-08 17:44:09 +00:00
void retourner ( Image entree , Image & sortie , int rotation ) {
2014-05-05 09:29:04 +00:00
2014-04-14 10:02:13 +00:00
}
2014-05-05 19:00:08 +00:00
2014-05-08 17:44:09 +00:00
void redimensionner ( Image entree , Image & sortie , int x1 , int x2 , int y1 , int y2 ) {
2014-05-05 19:00:08 +00:00
// Image *nouvelle = new Image(x2-x1, y2-y1, entree.g_maxComposante(), entree.g_typeComposantes());
// sortie = *nouvelle;
2014-05-05 10:01:42 +00:00
// pour x=x1 à x=x2
2014-05-05 19:00:08 +00:00
// pour y=y1 à y=y2
// sortie.s_pixel(x, y, entree.g_pixel(x+x1, y+y1));
// FinPour
2014-05-05 10:01:42 +00:00
// FinPour
2014-04-14 10:02:13 +00:00
}
2014-03-27 18:03:14 +00:00
// Modification couleur
2014-05-08 17:44:09 +00:00
void convBIN ( Image entree , Image & sortie ) {
2014-04-14 10:02:13 +00:00
}
2014-05-05 19:00:08 +00:00
2014-05-08 17:44:09 +00:00
void convNIV ( Image entree , Image & sortie ) {
2014-04-14 10:02:13 +00:00
}
2014-05-05 19:00:08 +00:00
2014-05-08 17:44:09 +00:00
void convRVB ( Image entree , Image & sortie ) {
2014-04-14 10:02:13 +00:00
}
2014-03-27 18:03:14 +00:00
//Help
2014-05-08 17:44:09 +00:00
void aide ( ) {
2014-05-05 09:29:04 +00:00
//Afficher le texte suivant :
}