Main Page | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages | Examples

vetFrameRGB24.h

00001 
00028 #ifndef __VETLIBVETFRAMERGB24_H__
00029  #define __VETLIBVETFRAMERGB24_H__
00030 
00031  #define VETFRAMERGB24_SLOWMODE
00032 
00033  #include "vetDefs.h"
00034 
00035  #include "PixelRGB24.h"
00036  #include "vetFrame.h"
00037 
00038  class vetFrameRGB24;
00039   #include "vetFrameYUV420.h"
00040   #include "vetFrameRGB96.h"
00041   #include "vetFrameRGBA32.h"
00042 
00043 
00044 
00045 class vetFrameRGB24 : public virtual vetFrame
00046  {
00047 
00048         public:
00049 
00053                 bool autoFreeData;
00054 
00058                 PixelRGB24 *data;
00059 
00060 
00061         public:
00062 
00066                 enum ChannelRGB { RED, GREEN, BLUE };
00067 
00071                 vetFrameRGB24();
00072 
00078                 vetFrameRGB24(unsigned int width, unsigned int height);
00079 
00084                 vetFrameRGB24(vetFrameRGB24& img);
00085 
00090                 vetFrameRGB24(vetFrameRGB96& img);
00091 
00096                 vetFrameRGB24(vetFrameRGBA32& img);
00097 
00101                 ~vetFrameRGB24();
00102 
00103 
00104                 void* dump_buffer() { return static_cast<void*>(data); };
00105 
00106                 unsigned int getBufferSize() { return (unsigned int)( width * height * 3); };
00107 
00108 
00109                 VETRESULT reAllocCanvas(unsigned int w, unsigned int h);
00110 
00111                 unsigned int getBpp() { return sizeof(PixelRGB24) * 8; };
00112                 VETRESULT setBlack();
00113                 VETRESULT setWhite();
00114 
00115                 VETRESULT extractBrightness(unsigned char* buffer, unsigned int* size = NULL );
00116 
00124                 vetFrameRGB24& clearWith(PixelRGB24& bg);
00125 
00126 
00136                 VETRESULT setPixel(unsigned int x, unsigned int y, PixelRGB24 p);
00137 
00138 
00148                 VETRESULT getPixel(unsigned int x, unsigned int y, PixelRGB24& p);
00149 
00150 
00151 
00160                 vetFrameRGB24& operator = (vetFrameRGB24& img);
00161 
00170                 vetFrameRGB24& operator += (vetFrameRGB24& img);
00171 
00180                 vetFrameRGB24& operator -= (vetFrameRGB24& img);
00181 
00182 
00183 
00184                 void operator << (const vetFrameYUV420& img);
00185                 void operator << (const vetFrameRGB96& img);
00186                 void operator << (const vetFrameRGBA32& img);
00187 
00188                 vetFrameRGB24& operator >> (vetFrameYUV420& img);
00189                 vetFrameRGB24& operator >> (vetFrameRGB96& img);
00190                 vetFrameRGB24& operator >> (vetFrameRGBA32& img);
00191 
00192 
00193                 VETFRAME_PROFILE getProfile() { return vetFrame::VETFRAME_RGB24; };
00194                 VETFRAME_CHANNEL_TYPE getChannelType() { return vetFrame::VETFRAME_CT_PACKED; };
00195 
00196                 int getFOURCC() { return 0x32424752; }; // same as RGB32
00197 
00198  };
00199 
00200 
00201 
00202 #endif //__VETLIBVETFRAMERGB24_H__
00203 

Generated on Tue Jan 24 11:59:03 2006 for VETLib by  doxygen 1.4.4