IDS peak IPL  v1.9.2
peak::ipl::Image Class Reference

Stores the pixel format, width and height of an image and the pointer to the image buffer. More...

#include <peak_ipl/types/peak_ipl_image.hpp>

Public Member Functions

 Image ()
 Creates an empty image. In other words, size is 0x0 and an invalid pixel format. More...
 
 Image (const peak::ipl::PixelFormat &pixelFormat, size_t width, size_t height)
 Creates an image with the given pixel format and size. More...
 
 Image (const peak::ipl::PixelFormat &pixelFormat, uint8_t *buffer, size_t bufferSize, size_t width, size_t height)
 Creates an image with the given pixel format and size from the given buffer. More...
 
 Image (const peak::ipl::PixelFormat &pixelFormat, size_t width, size_t height, uint64_t timestamp_ns)
 Creates an image with the given pixel format, size and timestamp. More...
 
 Image (const peak::ipl::PixelFormat &pixelFormat, uint8_t *buffer, size_t bufferSize, size_t width, size_t height, uint64_t timestamp_ns)
 Creates an image with the given pixel format, size and timestamp from the given buffer. More...
 
 ~Image ()
 Destructor for the Image instance. More...
 
 Image (const Image &other)
 Copy Constructor for a new Image instance. More...
 
Image & operator= (const Image &other)
 Copy assigment for Image instance. More...
 
 Image (Image &&other) noexcept
 Move constructor for Image instance. More...
 
Image & operator= (Image &&other) noexcept
 Move assignment for Image instance. More...
 
Image ConvertTo (const peak::ipl::PixelFormat &outputPixelFormat, uint8_t *outputImageBuffer, size_t outputImageBufferSize, peak::ipl::ConversionMode conversionMode=peak::ipl::ConversionMode::Fast) const
 Saves the data of the current image converted to the given pixel format into a destination buffer and creates an image from that buffer. More...
 

Public Attributes

 PEAK_IPL_MAYBE_UNUSED = size_t Width() const
 

Detailed Description

Stores the pixel format, width and height of an image and the pointer to the image buffer.

Constructor & Destructor Documentation

◆ Image() [1/7]

peak::ipl::Image::Image ( )
inline

Creates an empty image. In other words, size is 0x0 and an invalid pixel format.

Exceptions
ExceptionAn internal error has occurred.
Since
1.1

◆ Image() [2/7]

peak::ipl::Image::Image ( const peak::ipl::PixelFormat &  pixelFormat,
size_t  width,
size_t  height 
)
inline

Creates an image with the given pixel format and size.

Parameters
[in]pixelFormatThe pixel format.
[in]widthThe width.
[in]heightThe height.
Exceptions
OutOfRangeExceptionpixelFormat is valid but width or height is 0.
ExceptionAn internal error has occurred.
Since
1.0

◆ Image() [3/7]

peak::ipl::Image::Image ( const peak::ipl::PixelFormat &  pixelFormat,
uint8_t *  buffer,
size_t  bufferSize,
size_t  width,
size_t  height 
)
inline

Creates an image with the given pixel format and size from the given buffer.

Parameters
[in]pixelFormatThe pixel format.
[in]bufferThe buffer.
[in]bufferSizeThe size of the buffer.
[in]widthThe width.
[in]heightThe height.
Note
The given buffer doesn't get copied. This is why the buffer mustn't be freed before the image gets freed.
Exceptions
InvalidArgumentExceptionbufferSize is too small for the specified pixel format and image dimension.
OutOfRangeExceptionpixelFormat is valid but width or height is 0.
ExceptionAn internal error has occurred.
Since
1.0

◆ Image() [4/7]

peak::ipl::Image::Image ( const peak::ipl::PixelFormat &  pixelFormat,
size_t  width,
size_t  height,
uint64_t  timestamp_ns 
)
inline

Creates an image with the given pixel format, size and timestamp.

Parameters
[in]pixelFormatThe pixel format.
[in]widthThe width.
[in]heightThe height.
[in]timestamp_nsThe timestamp in ns.
Exceptions
OutOfRangeExceptionpixelFormat is valid but width or height is 0.
ExceptionAn internal error has occurred.
Since
1.5

◆ Image() [5/7]

peak::ipl::Image::Image ( const peak::ipl::PixelFormat &  pixelFormat,
uint8_t *  buffer,
size_t  bufferSize,
size_t  width,
size_t  height,
uint64_t  timestamp_ns 
)
inline

Creates an image with the given pixel format, size and timestamp from the given buffer.

Parameters
[in]pixelFormatThe pixel format.
[in]bufferThe buffer.
[in]bufferSizeThe size of the buffer.
[in]widthThe width.
[in]heightThe height.
[in]timestamp_nsThe timestamp in ns.
Note
The given buffer doesn't get copied. This is why the buffer mustn't be freed before the image gets freed.
Exceptions
InvalidArgumentExceptionbufferSize is too small for the specified pixel format and image dimension.
OutOfRangeExceptionpixelFormat is valid but width or height is 0.
ExceptionAn internal error has occurred.
Since
1.5

◆ ~Image()

peak::ipl::Image::~Image ( )
inline

Destructor for the Image instance.

Destroys an Image instance.

Since
1.0

◆ Image() [6/7]

peak::ipl::Image::Image ( const Image &  other)
inline

Copy Constructor for a new Image instance.

Creates a new Image instance.

Note
This only creates a shallow copy. To create a deepcopy, see #Image::Clone. See Shallow copy (since 1.8) for a detailed explanation.
Parameters
[in]otherThe other instance to acquire a reference for.
Since
1.0 Deleted
1.8 Implemented as shallow copy

◆ Image() [7/7]

peak::ipl::Image::Image ( Image &&  other)
inlinenoexcept

Move constructor for Image instance.

Moves the instance from other to this. Afterwards other is invalid.

Parameters
[in]otherThe other instance to move.
Since
1.0

Member Function Documentation

◆ ConvertTo()

Image peak::ipl::Image::ConvertTo ( const peak::ipl::PixelFormat &  outputPixelFormat,
uint8_t *  outputImageBuffer,
size_t  outputImageBufferSize,
peak::ipl::ConversionMode  conversionMode = peak::ipl::ConversionMode::Fast 
) const
inline

Saves the data of the current image converted to the given pixel format into a destination buffer and creates an image from that buffer.

Parameters
[in]outputPixelFormatThe output pixel format.
[out]outputImageBufferPointer to destination buffer.
[in]outputImageBufferSizeSize of destination buffer.
[in]conversionModeThe conversion mode.
Returns
Converted image
Note
This function allocates memory on every use. For faster processing, consider using ImageConverter::Convert instead.
Exceptions
BufferTooSmallExceptionThe provided buffer is too small for the output image.
ExceptionAn internal error has occurred.
Since
1.1

◆ operator=() [1/2]

Image & peak::ipl::Image::operator= ( const Image &  other)
inline

Copy assigment for Image instance.

Acquires a reference from other to this instance. If this instance already has a reference, it will be destroyed.

Note
See Shallow copy (since 1.8) for a detailed explanation.
Parameters
[in]otherThe other instance to acquire a reference for.
Since
1.0 Deleted
1.8 Implemented as shallow copy

◆ operator=() [2/2]

Image & peak::ipl::Image::operator= ( Image &&  other)
inlinenoexcept

Move assignment for Image instance.

Moves the instance from other to this. Afterwards other is invalid.

Parameters
[in]otherThe other instance to move.
Since
1.0

Member Data Documentation

◆ PEAK_IPL_MAYBE_UNUSED

peak::ipl::Image::PEAK_IPL_MAYBE_UNUSED = size_t Width() const

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