00001 #ifndef vidl_vil1_image_list_codec_h
00002 #define vidl_vil1_image_list_codec_h
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #include <vcl_string.h>
00014 #include <vidl_vil1/vidl_vil1_image_list_codec_sptr.h>
00015 #include <vidl_vil1/vidl_vil1_codec.h>
00016 #include <vil1/vil1_image.h>
00017 #include <vcl_list.h>
00018 #include <vcl_vector.h>
00019
00020
00021
00022 class vidl_vil1_image_list_codec : public vidl_vil1_codec
00023 {
00024
00025 public:
00026
00027
00028 vidl_vil1_image_list_codec();
00029 vidl_vil1_image_list_codec(vcl_list<vil1_image>& images);
00030 vidl_vil1_image_list_codec(vcl_vector<vil1_image>& images);
00031
00032 ~vidl_vil1_image_list_codec() {}
00033
00034
00035
00036 virtual vidl_vil1_image_list_codec* casttovidl_vil1_image_list_codec() { return this; }
00037
00038 virtual bool get_section(int position, void* ib, int x0, int y0, int w, int h) const;
00039 virtual int put_section(int position, void* ib, int x0, int y0, int w, int h);
00040
00041 virtual vidl_vil1_codec_sptr load(vcl_string const& fname, char mode = 'r' );
00042 virtual vidl_vil1_codec_sptr load(const vcl_list<vcl_string> &fnames, char mode = 'r');
00043 virtual vidl_vil1_codec_sptr load(const vcl_vector<vcl_string> &fnames, char mode = 'r');
00044 virtual bool save(vidl_vil1_movie* movie, vcl_string const& fname);
00045 virtual bool save(vidl_vil1_movie* movie, vcl_string const& fname, vcl_string const& type);
00046 virtual bool probe(vcl_string const& fname);
00047
00048 virtual vcl_string type() const {return "ImageList";}
00049
00050
00051 static void set_default_image_type(vcl_string const& type)
00052 { default_initialization_image_type_=type; }
00053
00054 virtual void set_image_type(vcl_string const& type)
00055 { default_image_type_=type; }
00056
00057 virtual vcl_string get_image_type() const {return default_image_type_;}
00058 vcl_vector<vil1_image> get_images() const {return images_;}
00059
00060
00061
00062
00063 protected:
00064 virtual bool init();
00065
00066
00067 vcl_vector<vil1_image> images_;
00068
00069 private:
00070 vcl_string default_image_type_;
00071 static vcl_string default_initialization_image_type_;
00072 };
00073
00074 #endif // vidl_vil1_image_list_codec_h