Skip to content
Snippets Groups Projects
Image.h 1.59 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 <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;
        
    
        public:
        Image();
    
    Jean-Marc's avatar
    q  
    Jean-Marc committed
        Image(unsigned int x, unsigned int y);
    
    Jean-Marc's avatar
    Jean-Marc committed
        ~Image();
    
    Jean-Marc's avatar
    q  
    Jean-Marc committed
        Pixel & getPix(unsigned int x, unsigned int y) const;
        Pixel getPix2(unsigned int x, unsigned int y) const;
        void setPix(unsigned int x, unsigned int y, Pixel couleur);
        void dessinerRectangle(unsigned int Xmin, unsigned int Ymin, unsigned int Xmax, unsigned int Ymax, Pixel couleur);
    
    Jean-Marc's avatar
    Jean-Marc committed
        void effacer (Pixel couleur);
    
    Jean-Marc's avatar
    Jean-Marc committed
        Pixel * getTab()const;
    
    Jean-Marc's avatar
    a  
    Jean-Marc committed
        void sauver(const string &filename) const;
        void ouvrir(const string &filename);
    
    Jean-Marc's avatar
    Jean-Marc committed
        void afficherConsole()const;
    
    Jean-Marc's avatar
    Jean-Marc committed
    
    
    Jean-Marc's avatar
    Jean-Marc committed
        void static testRegression()
    
    Jean-Marc's avatar
    Jean-Marc committed
        {
            Pixel p;
            Pixel p2(10,20,30);    
    
            Image im(50,50);
    
    Jean-Marc's avatar
    Jean-Marc committed
            p = im.getPix(20,26);
            cout<<"expecting 0 : "<<int(p.r)<<endl;
            cout<<endl;
    
            Image im2;
            cout<<"dim im2 : "<<im2.dimx<<" , "<<im2.dimy<<endl;
    
    Jean-Marc's avatar
    Jean-Marc committed
            cout<<endl;
    
    Jean-Marc's avatar
    Jean-Marc committed
    
            im.setPix(27,12,p2);
            Pixel p3 = im.getPix2(27,12);
    
    Jean-Marc's avatar
    Jean-Marc committed
            cout<<"expecting 10 20 30: "<<int(p3.r)<<","<<int(p3.g)<<","<<int(p3.b)<<endl;
    
    Jean-Marc's avatar
    Jean-Marc committed
            cout<<endl;
    
    Jean-Marc's avatar
    Jean-Marc committed
    
    
    Jean-Marc's avatar
    Jean-Marc committed
            im.dessinerRectangle(10,10,30,30,Pixel(78,36,108));
    
            Pixel p4 = im.getPix2(15,20);
    
    Jean-Marc's avatar
    Jean-Marc committed
            cout<<"expecting 78 36 108: "<<int(p4.r)<<","<<int(p4.g)<<","<<int(p4.b)<<endl;
    
    Jean-Marc's avatar
    Jean-Marc committed
            cout<<endl;
    
            im.effacer(Pixel(0,0,0));
            p4 = im.getPix2(18,25);
    
    Jean-Marc's avatar
    Jean-Marc committed
            cout<<"expecting 0 0 0: "<<int(p4.r)<<","<<int(p4.g)<<","<<int(p4.b)<<endl;
            //im.~Image();
        }
    
    Jean-Marc's avatar
    a  
    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