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
1.4.4