png++
0.2.9
|
Class template to represent PNG image. More...
#include <image.hpp>
Classes | |
class | pixel_consumer |
The pixel buffer adapter for reading pixel data. More... | |
class | pixel_generator |
The pixel buffer adapter for writing pixel data. More... | |
class | streaming_impl |
A common base class template for pixel_consumer and pixel_generator classes. More... | |
struct | transform_identity |
The default io transformation: does nothing. More... | |
Public Types | |
typedef pixel_traits< pixel > | traits |
The pixel traits type for pixel . More... | |
typedef pixel_buffer_type | pixbuf |
The pixel buffer type for pixel . More... | |
typedef pixbuf::row_type | row_type |
Represents a row of image pixel data. More... | |
typedef pixbuf::row_access | row_access |
typedef pixbuf::row_const_access | row_const_access |
typedef convert_color_space< pixel > | transform_convert |
A transformation functor to convert any image to appropriate color space. More... | |
Public Member Functions | |
image () | |
Constructs an empty image. More... | |
image (uint_32 width, uint_32 height) | |
Constructs an empty image of specified width and height. More... | |
image (std::string const &filename) | |
Constructs an image reading data from specified file using default converting transform. More... | |
template<class transformation > | |
image (std::string const &filename, transformation const &transform) | |
Constructs an image reading data from specified file using custom transformaton. More... | |
image (char const *filename) | |
Constructs an image reading data from specified file using default converting transform. More... | |
template<class transformation > | |
image (char const *filename, transformation const &transform) | |
Constructs an image reading data from specified file using custom transformaton. More... | |
image (std::istream &stream) | |
Constructs an image reading data from a stream using default converting transform. More... | |
template<class transformation > | |
image (std::istream &stream, transformation const &transform) | |
Constructs an image reading data from a stream using custom transformation. More... | |
void | read (std::string const &filename) |
Reads an image from specified file using default converting transform. More... | |
template<class transformation > | |
void | read (std::string const &filename, transformation const &transform) |
Reads an image from specified file using custom transformaton. More... | |
void | read (char const *filename) |
Reads an image from specified file using default converting transform. More... | |
template<class transformation > | |
void | read (char const *filename, transformation const &transform) |
Reads an image from specified file using custom transformaton. More... | |
void | read (std::istream &stream) |
Reads an image from a stream using default converting transform. More... | |
template<class transformation > | |
void | read (std::istream &stream, transformation const &transform) |
Reads an image from a stream using custom transformation. More... | |
template<class istream > | |
void | read_stream (istream &stream) |
Reads an image from a stream using default converting transform. More... | |
template<class istream , class transformation > | |
void | read_stream (istream &stream, transformation const &transform) |
Reads an image from a stream using custom transformation. More... | |
void | write (std::string const &filename) |
Writes an image to specified file. More... | |
void | write (char const *filename) |
Writes an image to specified file. More... | |
template<class ostream > | |
void | write_stream (ostream &stream) |
Writes an image to a stream. More... | |
pixbuf & | get_pixbuf () |
Returns a reference to image pixel buffer. More... | |
pixbuf const & | get_pixbuf () const |
Returns a const reference to image pixel buffer. More... | |
void | set_pixbuf (pixbuf const &buffer) |
Replaces the image pixel buffer. More... | |
uint_32 | get_width () const |
uint_32 | get_height () const |
void | resize (uint_32 width, uint_32 height) |
Resizes the image pixel buffer. More... | |
row_access | get_row (size_t index) |
Returns a reference to the row of image data at specified index. More... | |
row_const_access | get_row (size_t index) const |
Returns a const reference to the row of image data at specified index. More... | |
row_access | operator[] (size_t index) |
The non-checking version of get_row() method. More... | |
row_const_access | operator[] (size_t index) const |
The non-checking version of get_row() method. More... | |
pixel | get_pixel (size_t x, size_t y) const |
Returns a pixel at (x,y) position. More... | |
void | set_pixel (size_t x, size_t y, pixel p) |
Replaces a pixel at (x,y) position. More... | |
interlace_type | get_interlace_type () const |
void | set_interlace_type (interlace_type interlace) |
compression_type | get_compression_type () const |
void | set_compression_type (compression_type compression) |
filter_type | get_filter_type () const |
void | set_filter_type (filter_type filter) |
palette & | get_palette () |
Returns a reference to the image palette. More... | |
palette const & | get_palette () const |
Returns a const reference to the image palette. More... | |
void | set_palette (palette const &plte) |
Replaces the image palette. More... | |
tRNS const & | get_tRNS () const |
tRNS & | get_tRNS () |
void | set_tRNS (tRNS const &trns) |
double | get_gamma () const |
void | set_gamma (double gamma) |
Protected Attributes | |
image_info | m_info |
pixbuf | m_pixbuf |
Class template to represent PNG image.
The image consists of pixel data as well as additional image info like interlace type, compression method, palette (for colormap-based images) etc. Provides methods to read and write images from/to a generic stream and to manipulate image pixels.
The default pixel_buffer stores pixels in a vector of vectors, which is good for openning, editing or converting an image to any pixel type. But for simple and fast image unpacking to one memory chunk this approch is unacceptable, because it leads to multiple memory allocations, the unpacked image is spread across the memory and client code needs to gather it manualy. solid_pixel_buffer solves this problem, but with restriction: pixels with fractional number of bytes per channel are not allowed (see solid_pixel_buffer.hpp for details).
typedef pixel_traits< pixel > png::image< pixel, pixel_buffer_type >::traits |
The pixel traits type for pixel
.
typedef pixel_buffer_type png::image< pixel, pixel_buffer_type >::pixbuf |
The pixel buffer type for pixel
.
typedef pixbuf::row_type png::image< pixel, pixel_buffer_type >::row_type |
Represents a row of image pixel data.
typedef pixbuf::row_access png::image< pixel, pixel_buffer_type >::row_access |
typedef pixbuf::row_const_access png::image< pixel, pixel_buffer_type >::row_const_access |
typedef convert_color_space< pixel > png::image< pixel, pixel_buffer_type >::transform_convert |
A transformation functor to convert any image to appropriate color space.
|
inline |
Constructs an empty image.
|
inline |
Constructs an empty image of specified width and height.
References png::image< pixel, pixel_buffer_type >::resize().
|
inlineexplicit |
Constructs an image reading data from specified file using default converting transform.
References png::image< pixel, pixel_buffer_type >::read().
|
inline |
Constructs an image reading data from specified file using custom transformaton.
References png::image< pixel, pixel_buffer_type >::read().
|
inlineexplicit |
Constructs an image reading data from specified file using default converting transform.
References png::image< pixel, pixel_buffer_type >::read().
|
inline |
Constructs an image reading data from specified file using custom transformaton.
References png::image< pixel, pixel_buffer_type >::read().
|
inlineexplicit |
Constructs an image reading data from a stream using default converting transform.
References png::image< pixel, pixel_buffer_type >::read_stream().
|
inline |
Constructs an image reading data from a stream using custom transformation.
References png::image< pixel, pixel_buffer_type >::read_stream().
|
inline |
Reads an image from specified file using default converting transform.
Referenced by png::image< pixel, pixel_buffer_type >::image(), and png::image< pixel, pixel_buffer_type >::read().
|
inline |
Reads an image from specified file using custom transformaton.
References png::image< pixel, pixel_buffer_type >::read().
|
inline |
Reads an image from specified file using default converting transform.
References png::image< pixel, pixel_buffer_type >::read().
|
inline |
Reads an image from specified file using custom transformaton.
References png::image< pixel, pixel_buffer_type >::read_stream().
|
inline |
Reads an image from a stream using default converting transform.
References png::image< pixel, pixel_buffer_type >::read_stream().
|
inline |
Reads an image from a stream using custom transformation.
References png::image< pixel, pixel_buffer_type >::read_stream().
|
inline |
Reads an image from a stream using default converting transform.
Referenced by png::image< pixel, pixel_buffer_type >::image(), and png::image< pixel, pixel_buffer_type >::read().
|
inline |
Reads an image from a stream using custom transformation.
References png::image< pixel, pixel_buffer_type >::m_info, png::image< pixel, pixel_buffer_type >::m_pixbuf, and png::consumer< pixel, pixcon, info_holder, interlacing_supported >::read().
|
inline |
Writes an image to specified file.
|
inline |
Writes an image to specified file.
References png::image< pixel, pixel_buffer_type >::write_stream().
|
inline |
Writes an image to a stream.
References png::image< pixel, pixel_buffer_type >::m_info, png::image< pixel, pixel_buffer_type >::m_pixbuf, and png::generator< pixel, pixgen, info_holder, interlacing_supported >::write().
Referenced by png::image< pixel, pixel_buffer_type >::write().
|
inline |
Returns a reference to image pixel buffer.
References png::image< pixel, pixel_buffer_type >::m_pixbuf.
|
inline |
Returns a const reference to image pixel buffer.
References png::image< pixel, pixel_buffer_type >::m_pixbuf.
|
inline |
Replaces the image pixel buffer.
buffer | a pixel buffer object to take a copy from |
References png::image< pixel, pixel_buffer_type >::m_pixbuf.
|
inline |
References png::image< pixel, pixel_buffer_type >::m_pixbuf.
Referenced by png::image< pixel, pixel_buffer_type >::pixel_consumer::reset().
|
inline |
References png::image< pixel, pixel_buffer_type >::m_pixbuf.
Referenced by png::image< pixel, pixel_buffer_type >::pixel_consumer::reset().
|
inline |
Resizes the image pixel buffer.
References png::image< pixel, pixel_buffer_type >::m_info, png::image< pixel, pixel_buffer_type >::m_pixbuf, png::image_info::set_height(), and png::image_info::set_width().
Referenced by png::image< pixel, pixel_buffer_type >::image().
|
inline |
Returns a reference to the row of image data at specified index.
References png::image< pixel, pixel_buffer_type >::m_pixbuf.
|
inline |
Returns a const reference to the row of image data at specified index.
References png::image< pixel, pixel_buffer_type >::m_pixbuf.
|
inline |
The non-checking version of get_row() method.
References png::image< pixel, pixel_buffer_type >::m_pixbuf.
|
inline |
The non-checking version of get_row() method.
References png::image< pixel, pixel_buffer_type >::m_pixbuf.
|
inline |
Returns a pixel at (x,y) position.
References png::image< pixel, pixel_buffer_type >::m_pixbuf.
|
inline |
Replaces a pixel at (x,y) position.
References png::image< pixel, pixel_buffer_type >::m_pixbuf.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Returns a reference to the image palette.
References png::image_info::get_palette(), and png::image< pixel, pixel_buffer_type >::m_info.
|
inline |
Returns a const reference to the image palette.
References png::image_info::get_palette(), and png::image< pixel, pixel_buffer_type >::m_info.
|
inline |
Replaces the image palette.
References png::image< pixel, pixel_buffer_type >::m_info, and png::image_info::set_palette().
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
protected |
Referenced by png::image< pixel, pixel_buffer_type >::get_compression_type(), png::image< pixel, pixel_buffer_type >::get_filter_type(), png::image< pixel, pixel_buffer_type >::get_gamma(), png::image< pixel, pixel_buffer_type >::get_interlace_type(), png::image< pixel, pixel_buffer_type >::get_palette(), png::image< pixel, pixel_buffer_type >::get_tRNS(), png::image< pixel, pixel_buffer_type >::read_stream(), png::image< pixel, pixel_buffer_type >::resize(), png::image< pixel, pixel_buffer_type >::set_compression_type(), png::image< pixel, pixel_buffer_type >::set_filter_type(), png::image< pixel, pixel_buffer_type >::set_gamma(), png::image< pixel, pixel_buffer_type >::set_interlace_type(), png::image< pixel, pixel_buffer_type >::set_palette(), png::image< pixel, pixel_buffer_type >::set_tRNS(), and png::image< pixel, pixel_buffer_type >::write_stream().
|
protected |
Referenced by png::image< pixel, pixel_buffer_type >::get_height(), png::image< pixel, pixel_buffer_type >::streaming_impl< generator< pixel, pixel_generator, image_info_ref_holder, true > >::get_next_row(), png::image< pixel, pixel_buffer_type >::get_pixbuf(), png::image< pixel, pixel_buffer_type >::get_pixel(), png::image< pixel, pixel_buffer_type >::get_row(), png::image< pixel, pixel_buffer_type >::get_width(), png::image< pixel, pixel_buffer_type >::operator[](), png::image< pixel, pixel_buffer_type >::read_stream(), png::image< pixel, pixel_buffer_type >::pixel_consumer::reset(), png::image< pixel, pixel_buffer_type >::resize(), png::image< pixel, pixel_buffer_type >::set_pixbuf(), png::image< pixel, pixel_buffer_type >::set_pixel(), and png::image< pixel, pixel_buffer_type >::write_stream().