Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033 #ifndef __cmtkImageRGB_h_included_
00034 #define __cmtkImageRGB_h_included_
00035
00036 #include <cmtkconfig.h>
00037
00038 #include <Pipeline/cmtkPlane.h>
00039 #include <Pipeline/cmtkImage.h>
00040 #include <Pipeline/cmtkRGB.h>
00041
00042 #include <Base/cmtkTypes.h>
00043
00044 namespace
00045 cmtk
00046 {
00047
00050
00052 typedef enum {
00054 IMAGE_RGB,
00056 IMAGE_RGBA
00057 } ImageAlphaToggle;
00058
00061 class ImageRGB :
00063 public Plane
00064 {
00065 public:
00067 static ImageRGB* New();
00068
00074 const byte *GetDataPtr() const
00075 {
00076 return this->Data;
00077 }
00078
00086 byte *GetDataPtr( const bool forceAlloc );
00087
00092 void GetPixel( RGBA& rgb, const int index );
00093
00098 void SetPixel( const int index, const RGBA& rgb );
00099
00104 void GetPixel( RGB& rgb, const int index );
00105
00110 void SetPixel( const int index, const RGB& rgb );
00111
00115 void SetAlphaChannel( const ImageAlphaToggle alphaChannel,
00116 const bool convertData = false );
00117
00120 ImageAlphaToggle GetAlphaChannel() const { return AlphaChannel; }
00121
00123 bool IsGreyscale() const;
00124
00125 protected:
00127 ImageRGB();
00128
00132 ~ImageRGB();
00133
00134 private:
00139 byte *Data;
00140
00143 ImageAlphaToggle AlphaChannel;
00144
00148 unsigned int BytesPerPixel;
00149
00155 unsigned int DataSize;
00156 };
00157
00159
00160 }
00161
00162 #endif // #ifndef __cmtkImageRGB_h_included_