cgv
Loading...
Searching...
No Matches
cgv::media::image::abst_image_reader Class Referenceabstract

abstract interface for image readers More...

#include <image_reader.h>

Inheritance diagram for cgv::media::image::abst_image_reader:
cgv::base::base cgv::base::driver cgv::data::ref_counted cgv::reflect::self_reflection_tag cgv::media::image::bmp_reader

Public Member Functions

virtual abst_image_reader * clone () const =0
 construct a copy of the reader
virtual const std::string & get_last_error () const =0
 return a reference to the last error message
virtual const char * get_supported_extensions () const =0
 return a string containing a colon separated list of extensions that can be read with this reader
virtual bool open (const std::string &file_name, cgv::data::data_format &df, std::vector< cgv::data::data_format > *palette_formats)=0
 open the file and read the image header in order to determine the data format
virtual bool supports_per_line_read () const =0
 whether the reader supports per line reading (only valid after successful opening an image file
virtual bool supports_multiple_images () const
 whether the file can contain several images
virtual unsigned get_nr_images () const
 return the number of images in the file, what can cause the whole file to be scanned
virtual float get_image_duration () const
 return the duration of the current image in seconds, if returned value is 0, no duration is available
virtual unsigned get_current_image () const
 return the index of the current image
virtual bool seek_image (unsigned idx)
 jump to a specific image and return whether this was successful
virtual bool read_palette (unsigned int i, const cgv::data::data_view &dv)
 read the i-th palette in case of a paletted file format, the standard implementation returns false
virtual bool read_line (const cgv::data::data_format &df, const cgv::data::data_view &dv)=0
 read the next line into the given data pointer, set data format if not yet specified and allocate the data ptr if not yet done
virtual bool read_image (const cgv::data::data_format &df, const cgv::data::data_view &dv)=0
 read an image into the given data pointer.
virtual bool close ()=0
 close the image file
Public Member Functions inherited from cgv::base::base
virtual std::string get_type_name () const
 overload to return the type name of this object. By default the type interface is queried over get_type.
virtual std::string get_default_options () const
 overload to provide default options for registration
std::string get_name_or_type_name () const
 determine name of instance by checking cgv::base::named interface and in failure fallback to get_type_name()
virtual void on_register ()
 overload to handle register events that is sent after the instance has been registered
virtual void unregister ()
 overload to handle unregistration of instances
virtual bool on_exit_request ()
 overload to handle the appication exit request, return true if exiting is allowed and false otherwise
virtual void stream_stats (std::ostream &)
 overload to show the content of this object
virtual data::ref_ptr< named, true > get_named ()
 perform downcast to named
virtual data::ref_ptr< node, true > get_node ()
 perform downcast to node
virtual data::ref_ptr< group, true > get_group ()
 perform downcast to group
virtual data::ref_ptr< const named, true > get_named_const () const
 perform downcast to const named
virtual data::ref_ptr< const node, true > get_node_const () const
 perform downcast to const node
virtual data::ref_ptr< const group, true > get_group_const () const
 perform downcast to const group
template<class T>
data::ref_ptr< T, true > cast ()
 cast to arbitrary class, but use the casts to named, node and group from the interface
template<class T>
data::ref_ptr< const T, true > cast_const () const
 const cast to arbitrary class, but use the casts to named, node and group from the interface
template<class T>
T * get_interface ()
 use dynamic type cast to check for the given interface
template<class T>
const T * get_const_interface () const
 use dynamic type cast to check for the given interface
virtual void update ()
 this virtual update allows for example to ask a view to update the viewed value. The default implementation is empty.
virtual void * get_user_data () const
 this virtual method allows to pass application specific data for internal purposes
virtual bool self_reflect (cgv::reflect::reflection_handler &)
 used for simple self reflection
virtual std::string get_property_declarations ()
 return a semicolon separated list of property declarations
virtual bool set_void (const std::string &property, const std::string &value_type, const void *value_ptr)
 abstract interface for the setter of a dynamic property.
virtual void on_set (void *member_ptr)
 this callback is called when the set_void method has changed a member and can be overloaded in derived class
virtual bool get_void (const std::string &property, const std::string &value_type, void *value_ptr)
 abstract interface for the getter of a dynamic property.
virtual bool call_void (const std::string &method, const std::vector< std::string > &param_value_types, const std::vector< const void * > &param_value_ptrs, const std::string &result_type="", void *result_value_ptr=0)
 abstract interface to call an action
void set (const std::string &property, const char *value)
 specialization of set method to support const char* as strings
template<typename T>
void set (const std::string &property, const T &value)
 set a property of the element to the given value and perform standard conversions if necessary.
template<typename T>
T get (const std::string &property)
 query a property of the element and perform standard conversions if necessary.
void multi_set (const std::string &property_assignments, bool report_error=true)
 set several properties
bool is_property (const std::string &property_name, std::string *type_name=0)
 check if the given name specifies a property.
void * find_member_ptr (const std::string &property_name, std::string *type_name=0)
 find a member pointer by name.
Public Member Functions inherited from cgv::data::ref_counted
int get_ref_count () const
 read access to current count

Friends

class image_reader

Additional Inherited Members

Protected Member Functions inherited from cgv::base::base
virtual ~base ()
 make destructor virtual and not accessible from outside
Protected Member Functions inherited from cgv::data::ref_counted
 ref_counted ()
 constructor initializes the count to 0
void set_ref_count (int c) const
 write access is also const to allow ref counted pointers to const instances
Static Protected Member Functions inherited from cgv::base::base
template<class T>
static data::ref_ptr< T, true > cast_dynamic (base *b)
 use dynamic cast for downcast to given class

Detailed Description

abstract interface for image readers

Definition at line 17 of file image_reader.h.

Member Function Documentation

◆ clone()

virtual abst_image_reader * cgv::media::image::abst_image_reader::clone ( ) const
pure virtual

construct a copy of the reader

Implemented in cgv::media::image::bmp_reader.

◆ close()

virtual bool cgv::media::image::abst_image_reader::close ( )
pure virtual

close the image file

Implemented in cgv::media::image::bmp_reader.

◆ get_current_image()

unsigned cgv::media::image::abst_image_reader::get_current_image ( ) const
virtual

return the index of the current image

Definition at line 35 of file image_reader.cxx.

Referenced by supports_per_line_read().

◆ get_image_duration()

float cgv::media::image::abst_image_reader::get_image_duration ( ) const
virtual

return the duration of the current image in seconds, if returned value is 0, no duration is available

return the duration of the current image in seconds

Definition at line 29 of file image_reader.cxx.

Referenced by supports_per_line_read().

◆ get_last_error()

virtual const std::string & cgv::media::image::abst_image_reader::get_last_error ( ) const
pure virtual

return a reference to the last error message

Implemented in cgv::media::image::bmp_reader.

◆ get_nr_images()

unsigned cgv::media::image::abst_image_reader::get_nr_images ( ) const
virtual

return the number of images in the file, what can cause the whole file to be scanned

Definition at line 22 of file image_reader.cxx.

Referenced by supports_per_line_read().

◆ get_supported_extensions()

virtual const char * cgv::media::image::abst_image_reader::get_supported_extensions ( ) const
pure virtual

return a string containing a colon separated list of extensions that can be read with this reader

Implemented in cgv::media::image::bmp_reader.

◆ open()

virtual bool cgv::media::image::abst_image_reader::open ( const std::string & file_name,
cgv::data::data_format & df,
std::vector< cgv::data::data_format > * palette_formats )
pure virtual

open the file and read the image header in order to determine the data format

Implemented in cgv::media::image::bmp_reader.

◆ read_image()

virtual bool cgv::media::image::abst_image_reader::read_image ( const cgv::data::data_format & df,
const cgv::data::data_view & dv )
pure virtual

read an image into the given data pointer.

Only possible after successful open. If multiple images are contained in the file, this method can be called with success once for each contained image. The number of images can be determined despite of the method get_nr_images() by calling this method until it returns false.

Implemented in cgv::media::image::bmp_reader.

◆ read_line()

virtual bool cgv::media::image::abst_image_reader::read_line ( const cgv::data::data_format & df,
const cgv::data::data_view & dv )
pure virtual

read the next line into the given data pointer, set data format if not yet specified and allocate the data ptr if not yet done

Implemented in cgv::media::image::bmp_reader.

◆ read_palette()

bool cgv::media::image::abst_image_reader::read_palette ( unsigned int i,
const cgv::data::data_view & dv )
virtual

read the i-th palette in case of a paletted file format, the standard implementation returns false

In case of files with animated images, the palette can change for each image. Therefore call this method before each call to read_image().

Reimplemented in cgv::media::image::bmp_reader.

Definition at line 47 of file image_reader.cxx.

Referenced by supports_per_line_read().

◆ seek_image()

bool cgv::media::image::abst_image_reader::seek_image ( unsigned idx)
virtual

jump to a specific image and return whether this was successful

Definition at line 41 of file image_reader.cxx.

Referenced by supports_per_line_read().

◆ supports_multiple_images()

bool cgv::media::image::abst_image_reader::supports_multiple_images ( ) const
virtual

whether the file can contain several images

Definition at line 16 of file image_reader.cxx.

Referenced by supports_per_line_read().

◆ supports_per_line_read()

virtual bool cgv::media::image::abst_image_reader::supports_per_line_read ( ) const
pure virtual

whether the reader supports per line reading (only valid after successful opening an image file

Implemented in cgv::media::image::bmp_reader.

References get_current_image(), get_image_duration(), get_nr_images(), read_palette(), seek_image(), and supports_multiple_images().

◆ image_reader

friend class image_reader
friend

Definition at line 20 of file image_reader.h.


The documentation for this class was generated from the following files: