Skip to content
Snippets Groups Projects
Image.h 1.81 KiB
Newer Older
  • Learn to ignore specific revisions
  • Jean-Marc's avatar
    Jean-Marc committed
    #ifndef _IMAGE_H
    #define _IMAGE_H
    
    Jean-Marc's avatar
    Jean-Marc committed
    #include "Pixel.h"
    
    Jean-Marc's avatar
    Jean-Marc committed
    #include <cassert>
    
    Jean-Marc's avatar
    Jean-Marc committed
    #include <iostream>
    
    using namespace std;
    
    class Image
    {
    private:
    
    Jean-Marc's avatar
    Jean-Marc committed
        unsigned int dimx,dimy;
    
    Jean-Marc's avatar
    Jean-Marc committed
        Pixel * tab;
    
    Jean-Marc's avatar
    a  
    Jean-Marc committed
        
    
    Jean-Marc's avatar
    Jean-Marc committed
    
        public:
        Image();
    
    Jean-Marc's avatar
    Jean-Marc committed
        Image(const unsigned int &x, const unsigned int &y);
    
    Jean-Marc's avatar
    Jean-Marc committed
        ~Image();
    
    Jean-Marc's avatar
    Jean-Marc committed
        void static testRegression()
        {
    
    Jean-Marc's avatar
    Jean-Marc committed
            Image im1;
            Image im2(50,50);
            Pixel p;
            assert(im1.dimx == 0); 
            assert(im1.dimy == 0);
            p = im2.getPix(10,15);
            assert(p.r == 0);
            assert(p.g == 0); 
            assert(p.b == 0);
            p = im2.getPix2(18,36);
            assert(p.r == 0);
            assert(p.g == 0);
            assert(p.b == 0);
    
            Pixel p2(140,169,78);
            //cout<<int(p2.r)<<" "<<int(p2.g)<<endl;
            im1.dimx = 50;
            im1.dimy = 50;
            im1.setPix(25,14,p2);
            Pixel p3 = im1.getPix2(25,14);
            //cout<<int(p3.r)<<" "<<int(p3.g)<<endl;
            assert(p3.r == 140);
            assert(p3.g == 169);
            assert(p3.b == 78);
    
    
            im2.dessinerRectangle(10,10,20,20,p2);
            im2.effacer(p3);
            //cout<<im2.getPix(25,14).r<<" "<<im2.getPix(25,14).g<<endl;
            assert(im2.getPix(25,14).r == 140);
            assert(im2.getPix(25,14).g == 169);
            assert(im2.getPix(25,14).b == 78);
    
    
    Jean-Marc's avatar
    Jean-Marc committed
           
        }
    
    Jean-Marc's avatar
    Jean-Marc committed
        Pixel & getPix(const unsigned int &x, const unsigned int &y) const;
        Pixel getPix2(const unsigned int &x, const unsigned int &y)const;
        void setPix(const unsigned int &x, const unsigned int &y, const Pixel &couleur);
        void dessinerRectangle(unsigned int Xmin, unsigned int Ymin, unsigned int Xmax, unsigned int Ymax, const Pixel & couleur);
        void effacer (const Pixel & couleur);
    
    Jean-Marc's avatar
    Jean-Marc committed
        Pixel * getTab()const;
        void sauver(const string &filename) const;
        void ouvrir(const string &filename);
        void afficherConsole()const;
    
    
    Jean-Marc's avatar
    Jean-Marc committed
        
    
    Jean-Marc's avatar
    Jean-Marc committed
        
    
    Jean-Marc's avatar
    Jean-Marc committed
    };
    
    
    Jean-Marc's avatar
    Jean-Marc committed
    #endif
    
    
    Jean-Marc's avatar
    Jean-Marc committed