Skip to content
Snippets Groups Projects
Commit e7e00a65 authored by DUPASQUIER YOANN p2301526's avatar DUPASQUIER YOANN p2301526
Browse files

changements des .h avec doxyfile, sans les 3 dernières fonctions

parent b688a1e0
No related branches found
No related tags found
No related merge requests found
Pipeline #188630 failed
......@@ -79,6 +79,62 @@ void Image::testRegression() {
cout<<int((i.getPix(1,1)).r)<<"/"<<int((i.getPix(1,1)).g)<<"/"<<int((i.getPix(1,1)).b)<<endl;
cout<<int((i.getPix(1,2)).r)<<"/"<<int((i.getPix(1,2)).g)<<"/"<<int((i.getPix(1,2)).b)<<endl;
};
/*void Image::sauver(const string &filename) const
{
ofstream fichier(filename.c_str());
assert(fichier.is_open());
fichier << "P3" << endl;
fichier << dimx << " " << dimy << endl;
fichier << "255" << endl;
for (unsigned int y = 0; y < dimy; ++y)
for (unsigned int x = 0; x < dimx; ++x)
{
Pixel &pix = getPix(x++, y);
fichier << +pix.r << " " << +pix.g << " " << +pix.b << " ";
}
cout << "Sauvegarde de l'image " << filename << " ... OK\n";
fichier.close();
}
void Image::ouvrir(const string &filename)
{
ifstream fichier(filename.c_str());
assert(fichier.is_open());
char r, g, b;
string mot;
dimx = dimy = 0;
fichier >> mot >> dimx >> dimy >> mot;
assert(dimx > 0 && dimy > 0);
if (tab != nullptr)
delete[] tab;
tab = new Pixel[dimx * dimy];
for (unsigned int y = 0; y < dimy; ++y)
for (unsigned int x = 0; x < dimx; ++x)
{
fichier >> r >> b >> g;
getPix(x, y).r = r;
getPix(x, y).g = g;
getPix(x, y).b = b;
}
fichier.close();
cout << "Lecture de l'image " << filename << " ... OK\n";
}
void Image::afficherConsole()
{
cout << dimx << " " << dimy << endl;
for (unsigned int y = 0; y < dimy; ++y)
{
for (unsigned int x = 0; x < dimx; ++x)
{
Pixel &pix = getPix(x, y);
cout << +pix.r << " " << +pix.g << " " << +pix.b << " ";
}
cout << endl;
}
}*/
......
......@@ -2,22 +2,121 @@
#define _IMAGE_H
#include "Pixel.h"
/**
* @class Image
*
* @brief La classe Image contient un tableau 1D, utilisé comme un tableau 2D, de Pixel. Les dimensions dimx et dimy sont les dimensions de l'image concernée, en nombre de pixels
*/
class Image {
private:
int dimx;
int dimy;
Pixel *tab;
int dimx; ///< entier représentant la dimension horizontale de l'image
int dimy; ///< entier représentant la dimension veticale de l'image
Pixel *tab; ///< tableau contenant les pixels de l'image
public:
/**
* @brief Constructeur de la classe : initialise dimx et dimy à 0 n’alloue aucune mémoire pour le tableau de pixel
*
* @return pas de valeur de retour
*/
Image();
/**
* @brief Constructeur de la classe : initialise dimx et dimy (après vérification) puis alloue le tableau de pixel dans le tas (image noire)
*
* @param dimensionX entier représentant la dimension horizontale de l'image créée
* @param dimensionY entier représentant la dimension verticale de l'image créée
* @return pas de valeur de retour
*/
Image(int dimensionX, int dimensionY);
/**
* @brief Destructeur de la classe : déallocation de la mémoire du tableau de pixels et mise à jour des champs dimx et dimy à 0
*
* @return pas de valeur de retour
*/
~Image();
/**
* @brief Récupère le pixel original de coordonnées (x,y) en vérifiant sa validité.
*
* @param x entier représentant la position horizontale du pixel récupéré
* @param y entier représentant la position verticale du pixel récupéré
* @return retourne le pixel de coordonnées x y
*/
Pixel getPix(int x, int y); //renvoie le piexl original, pas une copie
/**
* @brief Récupère une copie du pixel de coordonnées (x,y) en vérifiant sa validité.
*
* @param x entier représentant la position horizontale du pixel copié récupéré
* @param y entier représentant la position verticale du pixel copié récupéré
* @return retourne une copie du pixel de coordonnées x y
*/
Pixel getPixc(int x, int y) const;//renvoie une copie du pixel
/**
* @brief Modifie le pixel de coordonnées (x,y)
*
* @param x entier représentant la position horizontale du pixel à modifier
* @param y entier représentant la position verticale du pixel à modifier
* @param couleur Pixel représentant la couleur que prendra le pixel de coordonnées x y
* @return pas de valeur de retour
*/
void setPix(int x, int y, Pixel couleur);
/**
* @brief Dessine un rectangle plein de la couleur dans l'image
*
* @param Xmin entier représentant la coordonnée horizontale à partir de laquelle le rectangle à dessiner doit commencer
* @param Ymin entier représentant la coordonnée verticale à partir de laquelle le rectangle à dessiner doit commencer
* @param Xmax entier représentant la coordonnée horizontale du pixel où le rectangle à dessiner doit s'arrêter
* @param Ymax entier représentant la coordonnée verticale du pixel où le rectangle à dessiner doit s'arrêter
* @param couleur Pixel représentant la couleur que prendra le rectangle dessiné
* @return pas de valeur de retour
*/
void dessinerRectangle(int Xmin, int Ymin, int Xmax, int Ymax, Pixel couleur);
/**
* @brief Efface l'image en la remplissant de la couleur en paramètre
*
* @param couleur Pixel représentant la couleur par laquelle l'image sera remplie (noir pour effacer l'image)
* @return pas de valeur de retour
*/
void effacer(Pixel couleur);
/**
* @brief Effectue des tests, pour vérifier si les fonctions précédentes focntionnent correctement
*
* @return pas de valeur de retour
*/
static void testRegression();
/**
* @brief Sauvegarde l'image qui porte le nom "filename"
*
* @param filename nom de l'image à sauvegarder
* @return pas de valeur de retour
*/
//void Isauver(const string &filename) const;
/**
* @brief ouvre l'image "filename" en plaçant ses pixels dans u tableau de pixels
*
* @param filename nom de l'image à ouvrir
* @return Description de la valeur de retour.
*/
//void ouvrir(const string &filename);
/**
* @brief Affiche les valeurs rgb de l'image sur la console, de la même forme que l'image
*
* @return pas de valeur de retour
*/
//void afficherConsole();
};
#endif
......
#ifndef _PIXEL_H
#define _PIXEL_H
/**
* @class Pixel
*
* @brief La classe Pixel contient 3 unsigned char: r, g et b représentants l'intensité des composantes rouge, vert et bleu d'un pixel
*/
class Pixel {
public:
unsigned char r,g,b; // les composantes du pixel, unsigned char en C++
unsigned char r,g,b; ///< unsigned char représentants l'intensité des composantes rouge, vert et bleu du pixel, pouvant aller de 0 à 255
// Constructeur par défaut de la classe: initialise le pixel à la couleur noire
/**
* @brief Constructeur par défaut de la classe: initialise le pixel à la couleur noire (r,g,b =0)
*
* @return pas de valeur de retour
*/
Pixel();
// Constructeur de la classe: initialise r,g,b avec les paramètres
/**
* @brief Constructeur de la classe: initialise r,g,b avec les paramètres
*
* @return pas de valeur de retour
*/
Pixel (unsigned char nr,unsigned char ng,unsigned char nb);
};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment