Encapsulates an image. More...
#include <gz/common/common.hh>
Public Types | |
enum | PixelFormatType { UNKNOWN_PIXEL_FORMAT = 0 , L_INT8 , L_INT16 , RGB_INT8 , RGBA_INT8 , BGRA_INT8 , RGB_INT16 , RGB_INT32 , BGR_INT8 , BGR_INT16 , BGR_INT32 , R_FLOAT16 , RGB_FLOAT16 , R_FLOAT32 , RGB_FLOAT32 , BAYER_RGGB8 , BAYER_BGGR8 , BAYER_GBRG8 , BAYER_GRBG8 , COMPRESSED_PNG , PIXEL_FORMAT_COUNT , COMPRESSED_JPEG } |
Pixel formats enumeration. More... | |
Public Member Functions | |
Image (const std::string &_filename="") | |
Constructor. | |
virtual | ~Image () |
Destructor. | |
math::Color | AvgColor () const |
Get the average color. | |
unsigned int | BPP () const |
Get the size of one pixel in bits. | |
std::vector< unsigned char > | Data () const |
Get the image as a data array. | |
std::string | Filename () const |
Get the full filename of the image. | |
unsigned int | Height () const |
Get the height. | |
int | Load (const std::string &_filename) |
Load an image. Return 0 on success. | |
math::Color | MaxColor () const |
Get the max color. | |
int | Pitch () const |
math::Color | Pixel (const unsigned int _x, const unsigned int _y) const |
Get a pixel color value. | |
PixelFormatType | PixelFormat () const |
Get the pixel format. | |
void | Rescale (const int _width, const int _height) |
Rescale the image. | |
std::vector< unsigned char > | RGBAData () const |
Get the RGBA data from the image. This will add an alpha channel if one is not present. | |
std::vector< unsigned char > | RGBData () const |
Get only the RGB data from the image. This will drop the alpha channel if one is present. | |
void | SavePNG (const std::string &_filename) |
Save the image in PNG format. | |
void | SavePNGToBuffer (std::vector< unsigned char > &_buffer) |
Get the PNG image in a buffer. | |
void | SetFromCompressedData (unsigned char *_data, unsigned int _size, Image::PixelFormatType _format) |
Set the image from compressed (i.e. png) data. | |
void | SetFromData (const unsigned char *_data, unsigned int _width, unsigned int _height, Image::PixelFormatType _format) |
Set the image from raw data. | |
bool | Valid () const |
Returns whether this is a valid image. | |
unsigned int | Width () const |
Get the width. | |
Static Public Member Functions | |
static Image::PixelFormatType | ConvertPixelFormat (const std::string &_format) |
Convert a string to a Image::PixelFormat. | |
template<typename T > | |
static void | ConvertToRGBImage (const void *_data, unsigned int _width, unsigned int _height, Image &_output, T _min=std::numeric_limits< T >::max(), T _max=std::numeric_limits< T >::lowest(), bool _flip=false) |
Convert a single channel image data buffer into an RGB image. During the conversion, the input image data are normalized to 8 bit values i.e. [0, 255]. Optionally, specify min and max values to use when normalizing the input image data. For example, if min and max are set to 1 and 10, a data value 2 will be normalized to: (2 - 1) / (10 - 1) * 255. | |
Detailed Description
Encapsulates an image.
Member Enumeration Documentation
◆ PixelFormatType
enum PixelFormatType |
Constructor & Destructor Documentation
◆ Image()
|
explicit |
Constructor.
- Parameters
-
[in] _filename the path to the image
◆ ~Image()
|
virtual |
Destructor.
Member Function Documentation
◆ AvgColor()
math::Color AvgColor | ( | ) | const |
Get the average color.
- Returns
- The average color
◆ BPP()
unsigned int BPP | ( | ) | const |
Get the size of one pixel in bits.
- Returns
- The BPP of the image
◆ ConvertPixelFormat()
|
static |
Convert a string to a Image::PixelFormat.
- Parameters
-
[in] _format Pixel format string.
- See also
- Image::PixelFormatNames
- Returns
- Image::PixelFormat
◆ ConvertToRGBImage()
|
inlinestatic |
Convert a single channel image data buffer into an RGB image. During the conversion, the input image data are normalized to 8 bit values i.e. [0, 255]. Optionally, specify min and max values to use when normalizing the input image data. For example, if min and max are set to 1 and 10, a data value 2 will be normalized to: (2 - 1) / (10 - 1) * 255.
- Parameters
-
[in] _data input image data buffer [in] _width image width [in] _height image height [out] _output Output RGB image [in] _min Minimum value to be used when normalizing the input image data to RGB. [in] _max Maximum value to be used when normalizing the input image data to RGB. [in] _flip True to flip the values after normalization, i.e. lower values are converted to brigher pixels.
References gz::math::equal(), std::isinf(), numeric_limits::lowest(), numeric_limits::max(), and Image::SetFromData().
◆ Data()
std::vector< unsigned char > Data | ( | ) | const |
Get the image as a data array.
- Returns
- The image data
◆ Filename()
std::string Filename | ( | ) | const |
Get the full filename of the image.
- Returns
- The filename used to load the image
◆ Height()
unsigned int Height | ( | ) | const |
Get the height.
- Returns
- The image height
◆ Load()
int Load | ( | const std::string & | _filename | ) |
Load an image. Return 0 on success.
- Parameters
-
[in] _filename the path to the image file
- Returns
- 0 when the operation succeeds to open a file or -1 when fails.
◆ MaxColor()
math::Color MaxColor | ( | ) | const |
Get the max color.
- Returns
- The max color
◆ Pitch()
int Pitch | ( | ) | const |
- Returns
- The pitch of the image
◆ Pixel()
math::Color Pixel | ( | const unsigned int | _x, |
const unsigned int | _y | ||
) | const |
Get a pixel color value.
- Parameters
-
[in] _x Column location in the image [in] _y Row location in the image
- Returns
- The color of the given pixel
◆ PixelFormat()
PixelFormatType PixelFormat | ( | ) | const |
Get the pixel format.
- Returns
- PixelFormat
◆ Rescale()
void Rescale | ( | const int | _width, |
const int | _height | ||
) |
Rescale the image.
- Parameters
-
[in] _width New image width [in] _height New image height
◆ RGBAData()
std::vector< unsigned char > RGBAData | ( | ) | const |
Get the RGBA data from the image. This will add an alpha channel if one is not present.
- Returns
- The image RGBA data
◆ RGBData()
std::vector< unsigned char > RGBData | ( | ) | const |
Get only the RGB data from the image. This will drop the alpha channel if one is present.
- Returns
- The image RGB data
◆ SavePNG()
void SavePNG | ( | const std::string & | _filename | ) |
Save the image in PNG format.
- Parameters
-
[in] _filename The name of the saved image
◆ SavePNGToBuffer()
void SavePNGToBuffer | ( | std::vector< unsigned char > & | _buffer | ) |
Get the PNG image in a buffer.
- Parameters
-
[out] _buffer Buffer with the data
◆ SetFromCompressedData()
void SetFromCompressedData | ( | unsigned char * | _data, |
unsigned int | _size, | ||
Image::PixelFormatType | _format | ||
) |
Set the image from compressed (i.e. png) data.
- Parameters
-
[in] _data Pointer to the raw image data [in] _size Size of the buffer [in] _format Pixel format of the provided data
◆ SetFromData()
void SetFromData | ( | const unsigned char * | _data, |
unsigned int | _width, | ||
unsigned int | _height, | ||
Image::PixelFormatType | _format | ||
) |
Set the image from raw data.
- Parameters
-
[in] _data Pointer to the raw image data [in] _width Width in pixels [in] _height Height in pixels [in] _format Pixel format of the provided data
Referenced by Image::ConvertToRGBImage().
◆ Valid()
bool Valid | ( | ) | const |
Returns whether this is a valid image.
- Returns
- true if image has a bitmap
◆ Width()
unsigned int Width | ( | ) | const |
Get the width.
- Returns
- The image width
The documentation for this class was generated from the following file: