00001
00024 #ifndef INC_SPATMOD_IMAGEFILTERPIXELTYPE_H
00025 #define INC_SPATMOD_IMAGEFILTERPIXELTYPE_H
00026
00027 #ifndef INC_SPATMOD_IMAGEFILTER_H
00028 #include <spatmod/imagefilter.h>
00029 #endif
00030
00031 namespace SPATMOD {
00032 namespace IMAGE {
00033
00034 class BUFFER;
00035
00036
00037
00048 class FILTER_PIXELTYPE : public FILTER {
00049 public:
00050
00052 FILTER_PIXELTYPE (
00053 STAGE *pSourceImage,
00054 bool TakeOwnership,
00055 PIXEL::TYPE TargetPixelType,
00056 double ColorMaxValue,
00057 DATATYPE TargetDatatype = DATATYPE_Invalid
00058 );
00059
00061 virtual ~FILTER_PIXELTYPE ();
00062
00065 static bool IsConversionValid (
00066 PIXEL::TYPE SourcePixelType,
00067 PIXEL::TYPE TargetPixelType
00068 );
00069
00070 private:
00071 #ifndef GENERATING_DOXYGEN_OUTPUT
00072 enum MODE {
00073 MODE_Invalid,
00074 MODE_Gray_to_RGB,
00075 MODE_Gray_to_GrayAlpha,
00076 MODE_GrayAlpha_to_Gray,
00077 MODE_Real_to_ComplexRI,
00078 MODE_Real_to_ComplexMP,
00079 MODE_RGB_to_CMY,
00080 MODE_RGB_to_CMYK,
00081 MODE_RGB_to_IHS,
00082 MODE_RGB_to_BHS,
00083 MODE_RGB_to_HSV,
00084 MODE_RGB_to_RGBA,
00085 MODE_RGBA_to_RGB,
00086 MODE_CMY_to_RGB,
00087 MODE_CMY_to_CMYK,
00088 MODE_CMYK_to_RGB,
00089 MODE_CMYK_to_CMY,
00090 MODE_ComplexRI_to_ComplexMP,
00091 MODE_ComplexMP_to_ComplexRI,
00092 MODE_IHS_to_RGB,
00093 MODE_BHS_to_RGB,
00094 MODE_HSV_to_RGB,
00095 };
00096
00097 PIXEL::TYPE m_TargetPixelType;
00098 DATATYPE m_TargetDataType;
00099 MODE m_Mode;
00100 double m_ColorMaxValue;
00101
00102
00103 virtual ERRVALUE v_Initialize ();
00104 virtual ERRVALUE v_PullSubSection (const SECTION& SubSection, BUFFER& buffer);
00105
00106
00107 static MODE GetConversionMode (PIXEL::TYPE SourcePixelType, PIXEL::TYPE TargetPixelType);
00108
00109
00110 FILTER_PIXELTYPE (const FILTER_PIXELTYPE&);
00111 FILTER_PIXELTYPE& operator= (const FILTER_PIXELTYPE&);
00112 #endif // GENERATING_DOXYGEN_OUTPUT
00113
00114 };
00115
00116
00117
00118 }
00119 }
00120
00121 #endif // INC_SPATMOD_IMAGEFILTERPIXELTYPE_H
00122