#ifndef PICTUREH #define PICTUREH #include //for ostream #include //for size_t #include "pixel.h" using namespace std; enum color { color_red, color_green, color_blue }; class picture { public: static const size_t ncols = 300; static const size_t nrows = 200; private: pixel a[nrows][ncols]; public: picture(int gray); picture(int red, int green, int blue); picture(pixel p); picture(pixel p[nrows][ncols]); picture(const char *filename); picture& operator+=(const picture& another); picture& operator-=(const picture& another); picture& operator*=(int factor); picture& operator/=(int divisor); picture& operator&=(color c); friend ostream& operator<<(ostream& ost, const picture& p); }; inline const picture operator+(picture p, const picture& q) {return p += q;} inline const picture operator-(picture p, const picture& q) {return p -= q;} inline const picture operator/(picture p, int divisor) {return p /= divisor;} inline const picture operator*(picture p, int factor) {return p *= factor;} inline const picture operator*(int factor, picture p) {return p *= factor;} inline const picture operator&(picture p, color c) {return p &= c;} inline const picture operator&(color c, picture p) {return p &= c;} #endif