00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00027 #ifndef __IMAGE_IMAGE_HEADER_INCLUDED__
00028 #define __IMAGE_IMAGE_HEADER_INCLUDED__
00029
00030 #ifndef __IMAGE_HEADER_HEADER_INCLUDED__
00031 #include "Header.hh"
00032 #endif
00033
00034 #include <vector>
00035
00036 namespace image {
00037
00057 class CImage
00058 {
00059 public :
00061 typedef std::vector<unsigned char> CPixelVec ;
00062
00064 typedef CPixelVec::const_iterator iterator ;
00065
00066 private :
00068 CHeader m_header ;
00069
00071 CPixelVec m_pixels ;
00072
00073 public :
00074 CImage( ) ;
00075 CImage( const CHeader& header, const CPixelVec& pixels ) ;
00076 ~CImage( ) ;
00077
00078
00079 void SwapAssign( const CHeader& header, CPixelVec& pixels ) ;
00080 void SwapPixels( CPixelVec& pixels ) ;
00081
00082
00083 const CHeader& Header( ) const ;
00084 const CPixelVec& Pixels( ) const ;
00085
00086
00087 void Assign( const CHeader& header, const CPixelVec& pixels ) ;
00088 bool Empty( ) const ;
00089 void Clear( ) ;
00090 iterator Begin( ) const { return m_pixels.begin( ) ; }
00091 iterator End( ) const { return m_pixels.end( ) ; }
00092
00093 private :
00094 #ifdef _DEBUG
00095 bool IsValid( ) const ;
00096 #endif
00097 } ;
00098
00099 }
00100
00101 #endif