00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef HxImageSeq_h
00015 #define HxImageSeq_h
00016
00017 #include "HxImageSeqIter.h"
00018 #include "HxString.h"
00019 #include "HxEnvironment.h"
00020 #include <vector>
00021
00022
00023 class HxImageSeqData;
00024
00025
00043 class HxImageSeq {
00044 public:
00046 HxImageSeq();
00047
00055 HxImageSeq(HxString filename, int bufSize = 0);
00056
00058 HxImageSeq(const HxImageSeq& rhs);
00059
00064 static void setUseMDC(int flag);
00065
00067 virtual ~HxImageSeq();
00068
00070 HxImageSeq& operator=(const HxImageSeq& rhs);
00071
00073 int ident() const;
00074
00076 int isNull() const;
00077
00079 int frameWidth() const;
00080
00082 int frameHeight() const;
00083
00085 int frameDepth() const;
00086
00088 int nrFrames() const;
00089
00091 HxImageRep getFrame(int nr) const;
00092
00098 void getRgb2d(int nr, int* pixels,
00099 HxString displayMode) const;
00100
00107 void getRgbPixels2d(int nr, int* pixels,
00108 HxString displayMode,
00109 int resWidth = -1, int resHeight = -1,
00110 HxGeoIntType gi = NEAREST) const;
00111
00113 HxImageSeqIter begin();
00114
00116 HxImageSeqIter end();
00117
00118
00120 static const int MPEG_F;
00122 static const int MIR_F;
00124 static const int AVI_F;
00125
00130 int writeFile(std::vector<int> frameList, HxString filename,
00131 int format);
00132
00134 STD_OSTREAM& put(STD_OSTREAM& os) const;
00135
00136 private:
00137
00138 static int _useMDC;
00139
00140 HxRcPtr<HxImageSeqData> _pointee;
00141
00142 HxImageSeqData* pointee() const;
00143
00144 friend class HxImageSeqIter;
00145 };
00146
00147
00148 inline STD_OSTREAM&
00149 operator<<(STD_OSTREAM& os, const HxImageSeq& seq)
00150 {
00151 return seq.put(os);
00152 }
00153
00154 inline HxString
00155 makeString(const HxImageSeq& seq)
00156 {
00157 return HxString("HxImageSeq") + makeString(seq.ident());
00158 }
00159
00160 #endif