Newer
Older
#include "Image.h"
#include <iostream>
#include <cassert>
using namespace std;
Image::Image()
{
tab = nullptr;
dimx = 0;
dimy = 0;
}
dimx = x;
dimy = y;
tab = new Pixel [dimx*dimy];
}
Image::~Image()
{
dimx = 0;
dimy = 0;
delete [] tab;
void Image::dessinerRectangle(unsigned Xmin, unsigned int Ymin, unsigned int Xmax, unsigned int Ymax, Pixel couleur)
{
setPix(i,j,couleur);
}
}
}
void Image::effacer (Pixel couleur)
{
dessinerRectangle(0,0,dimx,dimy,couleur);
}
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<<x<<" , "<<y<<endl;
}
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++)
fichier >> r >> g >> b;
//cout<<r<<" , "<<g<<" , "<<b<<endl;
getPix(x, y).r = int(r);
getPix(x, y).g = int(g);
getPix(x, y).b = int(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;
}
}