My Project
image.h
1 #ifndef IMAGE_INCLUDED
2 #define IMAGE_INCLUDED
3 
4 #include <stdio.h>
5 #include "Image/lineSegments.h"
6 
8 #define PI 3.1415926535897932384
9 
11 class Pixel {
12 public:
14  float r, g, b, a;
15 
17  Pixel(void);
18 
20  // Unimplemented Code //
22 
23  Pixel(const class Pixel32& p);
24 
25 };
26 
28 class Pixel32 {
29 public:
31  unsigned char r, g, b, a;
32 
34  Pixel32(void);
35 
37  // Unimplemented Code //
39 
42  Pixel32(const Pixel& p);
43 };
44 
45 
47 class Image32{
48  int w,h;
49  Pixel32* pixels;
50 public:
51  Image32(void);
52  ~Image32(void);
53 
55  int setSize(const int& width,const int& height);
56 
58  Image32& operator = (const Image32& img);
59 
61  int width(void) const;
63  int height(void) const;
64 
66  Pixel32& operator() (const int& x,const int& y);
67 
69  const Pixel32& operator() (const int& x,const int& y) const;
70 
72  Pixel32& pixel(const int& x,const int& y);
73 
75  const Pixel32& pixel(const int& x,const int& y) const;
76 
78  // Unimplemented Code //
80 
85  int AddRandomNoise(const float& noise,Image32& outputImage) const;
86 
91  int Brighten(const float& brightness,Image32& outputImage) const;
92 
96  int Luminance(Image32& outputImage) const;
97 
102  int Contrast(const float& contrast,Image32& outputImage) const;
103 
108  int Saturate(const float& saturation,Image32& outputImage) const;
109 
115  int Quantize(const int& bits,Image32& outputImage) const;
116 
122  int RandomDither(const int& bits,Image32& outputImage) const;
123 
129  int OrderedDither2X2(const int& bits,Image32& outputImage) const;
130 
136  int FloydSteinbergDither(const int& bits,Image32& outputImage) const;
137 
141  int Blur3X3(Image32& outputImage) const;
142 
146  int EdgeDetect3X3(Image32& outputImage) const;
147 
152  int ScaleNearest(const float& scaleFactor,Image32& outputImage) const;
153 
158  int ScaleBilinear(const float& scaleFactor,Image32& outputImage) const;
159 
164  int ScaleGaussian(const float& scaleFactor,Image32& outputImage) const;
165 
170  int RotateNearest(const float& angle,Image32& outputImage) const;
171 
176  int RotateBilinear(const float& angle,Image32& outputImage) const;
177 
182  int RotateGaussian(const float& angle,Image32& outputImage) const;
183 
184 
188  int SetAlpha(const Image32& matte);
189 
194  int Composite(const Image32& overlay,Image32& outputImage) const;
195 
196 
201  int Crop(const int& x1,const int& y1,const int& x2,const int& y2,Image32& outputImage) const;
202 
203 
207  int FunFilter(Image32& outputImage) const;
208 
214  static int BeierNeelyMorph(const Image32& source,const Image32& destination,const OrientedLineSegmentPairs& olsp,const float& timeStep,Image32& ouputImage);
215 
219  int Warp(const OrientedLineSegmentPairs& olsp,Image32& outputImage) const;
220 
226  static int CrossDissolve(const Image32& source,const Image32& destination,const float& blendWeight,Image32& ouputImage);
227 
228 
232  Pixel32 NearestSample(const float& x,const float& y) const;
233 
237  Pixel32 BilinearSample(const float& x,const float& y) const;
238 
242  Pixel32 GaussianSample(const float& x,const float& y,const float& variance,const float& radius) const;
243 
244 
248  int ReadImage(char* fileName);
252  int WriteImage(char* fileName);
253 
254 };
255 #endif // IMAGE_INCLUDED
256 
Pixel(void)
Definition: image.cpp:10
float r
Definition: image.h:14
unsigned char r
Definition: image.h:31
Definition: lineSegments.h:54
Definition: image.h:28
Definition: image.h:47
Definition: image.h:11