IDS peak IPL  v1.10.0
peak::ipl::ImageConverter Class Referencefinal

Converts images from one PixelFormat to another. More...

#include <peak_ipl/algorithm/peak_ipl_image_converter.hpp>

Public Member Functions

 ImageConverter ()
 Constructor for a new ImageConverter instance. More...
 
 ~ImageConverter ()
 Destructor for the ImageConverter instance. More...
 
 ImageConverter (const ImageConverter &other)
 Copy Constructor for a new ImageConverter instance. More...
 
ImageConverter & operator= (const ImageConverter &other)
 Copy assigment for ImageConverter instance. More...
 
 ImageConverter (ImageConverter &&other) noexcept
 Move constructor for ImageConverter instance. More...
 
ImageConverter & operator= (ImageConverter &&other) noexcept
 Move assignment for ImageConverter instance. More...
 
 ImageConverter (const peak::ipl::PixelFormat &inputPixelFormat, const peak::ipl::PixelFormat &outputPixelFormat, size_t width, size_t height, size_t imageCount=5)
 Convenience constructor to directly pre-allocate an internal buffer pool. This calls PreAllocateConversion internally. More...
 
void PreAllocateConversion (const peak::ipl::PixelFormat &inputPixelFormat, const peak::ipl::PixelFormat &outputPixelFormat, size_t width, size_t height, size_t imageCount=5)
 Pre-allocate buffer pools needed for the specified conversion. More...
 
void SetConversionMode (peak::ipl::ConversionMode conversionMode)
 Set conversion mode. More...
 
Image Convert (const Image &inputImage, const peak::ipl::PixelFormat &outputPixelFormat, uint8_t *outputImageBuffer, size_t outputImageBufferSize) 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 = peak::ipl::ConversionMode ConversionMode() const
 

Detailed Description

Converts images from one PixelFormat to another.

Note
In order to speed up processing, instances of this class maintain internal memory pools, which allows reuse of memory instead of allocating new memory on each conversion.
The memory is freed when the instance is destroyed. There is one pool for every needed byte count, therefore, a new pool will be allocated if an image with a new size or format needs to be processed.
One may select to create a new instance of this class when changing image settings in order to free old pools. If a new pool or buffer is needed, they will get allocated automatically during the conversion, which results in the first conversion taking more time.
This can be prevented by using the function #ImageConverter::PreAllocateConversion before the conversion. Buffers can be reused once a converted image gets freed.

Constructor & Destructor Documentation

◆ ImageConverter() [1/4]

peak::ipl::ImageConverter::ImageConverter ( )
inline

Constructor for a new ImageConverter instance.

Creates a new ImageConverter instance.

Since
1.0

◆ ~ImageConverter()

peak::ipl::ImageConverter::~ImageConverter ( )
inline

Destructor for the ImageConverter instance.

Destroys an ImageConverter instance.

Since
1.0

◆ ImageConverter() [2/4]

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

Copy Constructor for a new ImageConverter instance.

Creates a new ImageConverter instance.

Note
This only creates a shallow copy. 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

◆ ImageConverter() [3/4]

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

Move constructor for ImageConverter instance.

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

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

◆ ImageConverter() [4/4]

peak::ipl::ImageConverter::ImageConverter ( const peak::ipl::PixelFormat &  inputPixelFormat,
const peak::ipl::PixelFormat &  outputPixelFormat,
size_t  width,
size_t  height,
size_t  imageCount = 5 
)
inline

Convenience constructor to directly pre-allocate an internal buffer pool. This calls PreAllocateConversion internally.

Parameters
[in]inputPixelFormatThe pixelformat of the source image
[in]outputPixelFormatThe pixelformat of the converted image
[in]widthWidth of the source image
[in]heightHeight of the source image
[in]imageCountMaximum number of converted images held at one time
Exceptions
ExceptionAn internal error has occurred.
Since
1.4

Member Function Documentation

◆ Convert()

Image peak::ipl::ImageConverter::Convert ( const Image &  inputImage,
const peak::ipl::PixelFormat &  outputPixelFormat,
uint8_t *  outputImageBuffer,
size_t  outputImageBufferSize 
) 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]inputImageThe input image.
[in]outputPixelFormatThe output pixel format.
[out]outputImageBufferPointer to destination buffer.
[in]outputImageBufferSizeSize of destination buffer.
Returns
Converted image
Exceptions
BufferTooSmallExceptionThe provided buffer is too small for the output image.
ExceptionAn internal error has occurred.
Since
1.1

◆ operator=() [1/2]

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

Copy assigment for ImageConverter 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]

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

Move assignment for ImageConverter instance.

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

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

◆ PreAllocateConversion()

void peak::ipl::ImageConverter::PreAllocateConversion ( const peak::ipl::PixelFormat &  inputPixelFormat,
const peak::ipl::PixelFormat &  outputPixelFormat,
size_t  width,
size_t  height,
size_t  imageCount = 5 
)
inline

Pre-allocate buffer pools needed for the specified conversion.

Parameters
[in]inputPixelFormatThe pixelformat of the source image
[in]outputPixelFormatThe pixelformat of the converted image
[in]widthWidth of the source image
[in]heightHeight of the source image
[in]imageCountMaximum number of converted images held at one time
Exceptions
ExceptionAn internal error has occurred.
Since
1.4

◆ SetConversionMode()

void peak::ipl::ImageConverter::SetConversionMode ( peak::ipl::ConversionMode  conversionMode)
inline

Set conversion mode.

Parameters
[in]conversionModeThe conversion mode to set.
Exceptions
ExceptionAn internal error has occurred.
Since
1.0

Member Data Documentation

◆ PEAK_IPL_MAYBE_UNUSED

peak::ipl::ImageConverter::PEAK_IPL_MAYBE_UNUSED = peak::ipl::ConversionMode ConversionMode() const

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