Newer
Older
#include "Image.h"
#include <iostream>
#include <cassert>
for(unsigned int i = 0; i<dimx*dimy; i++)
{
tab[i] = Pixel(0,0,0);
}
if (tab != nullptr)
{
delete [] tab;
tab = nullptr;
}
void Image::setPix(const unsigned int &x, const unsigned int &y, const Pixel &couleur)
void Image::dessinerRectangle(unsigned int Xmin, unsigned int Ymin, unsigned int Xmax, unsigned int Ymax, const Pixel & couleur)
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
void Image::testRegression()
{
cout<<"test de regression : "<<endl;
Image im1;
assert (im1.dimx == 0);
assert (im1.dimy == 0);
Image im2(50,50);
assert (im2.dimx == 50);
assert (im2.dimy == 50);
Pixel p1 = im2.getPix(14,26);
assert(p1.r == 0);
assert(p1.g == 0);
assert(p1.b == 0);
Pixel p2(145,78,153);
im2.dessinerRectangle(10,10,30,30,p2);
p1 = im2.getPix(18,22);
cout<<int(p1.r)<<" "<<int(p1.g)<<" "<<int(p1.b)<<endl;
im2.effacer(Pixel(0,0,0));
p2 = im2.getPix(18,22);
cout<<int(p2.r)<<" "<<int(p2.g)<<" "<<int(p2.b)<<endl;
cout<<"fin test"<<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++)
}
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());
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++)
getPix(x, y).r = char(r);
getPix(x, y).g = char(g);
getPix(x, y).b = char(b);
}
fichier.close();
cout << "Lecture de l'image " << filename << " ... OK\n";
}
{
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);