cgv
Loading...
Searching...
No Matches
cgv::media::image::bmp_reader Class Reference

implements the image reader interface for bmp files More...

#include <bmp_reader.h>

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

Public Member Functions

 bmp_reader ()
 default constructor
 
 ~bmp_reader ()
 close file in destructor
 
std::string get_type_name () const
 overload to return the type name of this object
 
abst_image_readerclone () const
 construct a copy of the reader
 
const std::string & get_last_error () const
 return a reference to the last error message
 
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
 
const char * get_supported_extensions () const
 return a string containing a colon separated list of extensions that can be read with this reader
 
bool open (const std::string &file_name, cgv::data::data_format &df, std::vector< cgv::data::data_format > *palette_formats)
 open the file and read the image header in order to determine the data format
 
bool supports_per_line_read () const
 whether the reader supports per line reading (only valid after successful opening an image file
 
bool read_line (const cgv::data::data_format &df, const cgv::data::data_view &dv)
 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
 
bool read_image (const cgv::data::data_format &df, const cgv::data::data_view &dv)
 read the whole image into the given data pointer, set data format if not yet specified and allocate the data ptr if not yet done. If image file has not been opened yet, open it and close it after reading
 
bool close ()
 close the image file
 
- Public Member Functions inherited from cgv::media::image::abst_image_reader
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
 
- Public Member Functions inherited from cgv::base::base
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, trueget_named ()
 perform downcast to named
 
virtual data::ref_ptr< node, trueget_node ()
 perform downcast to node
 
virtual data::ref_ptr< group, trueget_group ()
 perform downcast to group
 
virtual data::ref_ptr< const named, trueget_named_const () const
 perform downcast to const named
 
virtual data::ref_ptr< const node, trueget_node_const () const
 perform downcast to const node
 
virtual data::ref_ptr< const group, trueget_group_const () const
 perform downcast to const group
 
template<class T >
data::ref_ptr< T, truecast ()
 cast to arbitrary class, but use the casts to named, node and group from the interface
 
template<class T >
data::ref_ptr< const T, truecast_const ()
 const cast to arbitrary class, but use the casts to named, node and group from the interface
 
template<class T >
Tget_interface ()
 use dynamic type cast to check for the given interface
 
template<class T >
const Tget_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 voidget_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.
 
voidfind_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
 

Protected Attributes

FILE * fp
 
std::string last_error
 
std::vector< unsigned char > palette
 

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, truecast_dynamic (base *b)
 use dynamic cast for upcast to given class
 

Detailed Description

implements the image reader interface for bmp files

Definition at line 13 of file bmp_reader.h.

Constructor & Destructor Documentation

◆ bmp_reader()

cgv::media::image::bmp_reader::bmp_reader ( )

default constructor

Definition at line 17 of file bmp_reader.cxx.

Referenced by clone().

◆ ~bmp_reader()

cgv::media::image::bmp_reader::~bmp_reader ( )

close file in destructor

Definition at line 22 of file bmp_reader.cxx.

Member Function Documentation

◆ clone()

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

construct a copy of the reader

Implements cgv::media::image::abst_image_reader.

Definition at line 36 of file bmp_reader.cxx.

References bmp_reader().

◆ close()

bool cgv::media::image::bmp_reader::close ( )
virtual

close the image file

Implements cgv::media::image::abst_image_reader.

Definition at line 221 of file bmp_reader.cxx.

Referenced by open().

◆ get_last_error()

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

return a reference to the last error message

Implements cgv::media::image::abst_image_reader.

Definition at line 42 of file bmp_reader.cxx.

◆ get_supported_extensions()

const char * cgv::media::image::bmp_reader::get_supported_extensions ( ) const
virtual

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

Implements cgv::media::image::abst_image_reader.

Definition at line 48 of file bmp_reader.cxx.

◆ get_type_name()

std::string cgv::media::image::bmp_reader::get_type_name ( ) const
virtual

overload to return the type name of this object

Reimplemented from cgv::base::base.

Definition at line 30 of file bmp_reader.cxx.

◆ open()

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

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

Implements cgv::media::image::abst_image_reader.

Definition at line 58 of file bmp_reader.cxx.

References cgv::data::CF_RGB, close(), cgv::base::open_data_file(), and cgv::type::info::TI_UINT8.

◆ read_image()

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

read the whole image into the given data pointer, set data format if not yet specified and allocate the data ptr if not yet done. If image file has not been opened yet, open it and close it after reading

Implements cgv::media::image::abst_image_reader.

Definition at line 213 of file bmp_reader.cxx.

References cgv::data::data_format::get_height(), and read_line().

◆ read_line()

bool cgv::media::image::bmp_reader::read_line ( const cgv::data::data_format df,
const cgv::data::data_view dv 
)
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

Implements cgv::media::image::abst_image_reader.

Definition at line 175 of file bmp_reader.cxx.

References cgv::data::data_view_base::get_format(), cgv::data::component_format::get_nr_components(), cgv::data::data_view_impl< D, P >::get_ptr(), and cgv::data::data_format::get_width().

Referenced by read_image().

◆ read_palette()

bool cgv::media::image::bmp_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

Reimplemented from cgv::media::image::abst_image_reader.

Definition at line 155 of file bmp_reader.cxx.

References cgv::data::data_view_impl< D, P >::get_ptr().

◆ supports_per_line_read()

bool cgv::media::image::bmp_reader::supports_per_line_read ( ) const
virtual

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

Implements cgv::media::image::abst_image_reader.

Definition at line 170 of file bmp_reader.cxx.

Member Data Documentation

◆ fp

FILE* cgv::media::image::bmp_reader::fp
protected

Definition at line 16 of file bmp_reader.h.

◆ last_error

std::string cgv::media::image::bmp_reader::last_error
protected

Definition at line 17 of file bmp_reader.h.

◆ palette

std::vector<unsigned char> cgv::media::image::bmp_reader::palette
protected

Definition at line 18 of file bmp_reader.h.


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