INFO702 - TPs
Loading...
Searching...
No Matches
GrayLevelImage2D.hpp
1#ifndef _GRAYLEVELIMAGE2D_HPP_
2#define _GRAYLEVELIMAGE2D_HPP_
3
4#include <iostream>
5#include <vector>
6#include <exception>
7
8
10
11public:
12 typedef unsigned char GrayLevel;// le type pour les niveaux de gris.
13 typedef std::vector<GrayLevel> Container;// le type pour stocker les niveaux de gris de l'image.
14
15 /**
16 Représente un itérateur sur toutes les valeurs d'une image.
17
18 Model of DefaultConstructible, CopyConstructible, Assignable,
19 RandomAccessIterator. */
20 struct Iterator : public Container::iterator {
21 Iterator( GrayLevelImage2D& Image, int x, int y );
22 };
23
24
25public:
27 GrayLevelImage2D( int w, int h, GrayLevel g = 0 );
28 void fill( GrayLevel g );
29
30 //! [gli2d-sec3]
31 /// @return la largeur de l'image.
32 int w() const;
33 /// @return la hauteur de l'image.
34 int h() const;
35
36 /**
37 Accesseur read-only à la valeur d'un pixel.
38 @return la valeur du pixel(i,j)
39 */
40 GrayLevel at( int i, int j ) const;
41
42 /**
43 Accesseur read-write à la valeur d'un pixel.
44 @return une référence à la valeur du pixel(i,j)
45 */
46 GrayLevel& at( int i, int j );
47 //! [gli2d-sec3]
48
49
50
52 Iterator end();
53 Iterator start( int x, int y );
54
55 std::pair<int,int> position( Iterator it ) const;
56
57 bool importPGM( std::istream & input );
58 bool exportPGM( std::ostream & output, bool ascii = true );
59
60
61
62private:
63 // Calcule l'indice dans m_data du pixel (x,y).
64 int index( int x, int y ) const;
65 // Le tableau contenant les valeurs des pixels.
66 Container m_data;
67 // la largeur
68 int m_width;
69 // la hauteur
70 int m_height;
71};
72
73
74#endif // #ifndef _GRAYLEVELIMAGE2D_HPP_
GrayLevel & at(int i, int j)
GrayLevel at(int i, int j) const
int w() const
Iterator begin()
[gli2d-sec3]
int h() const