Initialize(EPixelType sourcePixelType) Optionally initializes the image format converter before conversion.
virtual bool
IsInitialized(EPixelType sourcePixelType) const Returns information about the converter being initialized.
virtual void
Uninitialize() Destroys data structures required for conversion.
virtual bool
ImageHasDestinationFormat(const IImage & sourceImage) const Checks to see if a conversion is required or if the source image already has the desired format.
virtual bool
ImageHasDestinationFormat(EPixelType sourcePixelType, size_t sourcePaddingX, EImageOrientation sourceOrientation) const Checks to see if a conversion is required or if the source image already has the desired format.
GetBufferSizeForConversion(EPixelType sourcePixelType, uint32_t sourceWidth, uint32_t sourceHeight) const Computes the size of the destination image buffer in byte.
virtual void
Convert(IReusableImage & destinationImage, const IImage & sourceImage) Creates a new image by converting an image to a different format.
virtual void
Convert(IReusableImage & destinationImage, const void * pSourceBuffer, size_t sourceBufferSizeBytes, EPixelType sourcePixelType, uint32_t sourceWidth, uint32_t sourceHeight, size_t sourcePaddingX, EImageOrientation sourceOrientation) Creates a new image by converting an image to a different format.
virtual void
Convert(void * pDestinationBuffer, size_t destinationBufferSizeBytes, const IImage & sourceImage) Creates a new image by converting an image to a different format.
virtual void
Convert(void * pDestinationBuffer, size_t destinationBufferSizeBytes, const void * pSourceBuffer, size_t sourceBufferSizeBytes, EPixelType sourcePixelType, uint32_t sourceWidth, uint32_t sourceHeight, size_t sourcePaddingX, EImageOrientation sourceOrientation) Creates a new image by converting an image to a different format.
GetNodeMap() Provides access to the node map of the format converter.
bool
IsSupportedInputFormat(EPixelType sourcePixelType) Returns true if the image format defined by the given pixel type is a supported input format.
bool
IsSupportedOutputFormat(EPixelType destinationPixelType) Returns true if the image format defined by the given pixel type is a supported output format.
All input image formats can be converted to all output image formats.
RGB, BGR and Bayer image formats are converted to monochrome formats by using the following formula:
mono=(0.25*red)+(0.625*green)+(0.125*blue);
YUV formats are converted to 16 bit bit depth in an intermediate conversion step. This is why the output is always aligned at the most significant bit when converting to 16 bit color output formats like PixelType_RGB16packed.
The default treatment of rows and columns that cannot be converted due to their location on edges, can be controlled using the CImageFormatConverter::InconvertibleEdgeHandling parameter. See also the Convert() method description.
Optionally initializes the image format converter before conversion.
Parameters:
sourcePixelType The pixel type of the source image.
Precondition:
The converter parameters are set up.
The pixelTypeSource must be supported by the converter.
Error Safety:
Throws an exception if the passed pixel type does not represent a valid input format. The converter object is still valid after error and can be initialized again.
Depending on parameter settings and the input format, data structures required for conversion are created, e.g. lookup tables.
Initialization is done automatically when calling Convert() if needed. This may add a delay when converting the first image.
Lookup tables are created when using monochrome images as input and when the gamma conversion method is selected or when the shift conversion method is selected and the value of AdditionalLeftShift is not zero. The converter can be reinitialized with other settings if required.
Return: Returns true if the source image already has the desired format.
Error Safety:
Does not throw C++ exceptions.
A conversion may even be required image format does not change e.g. if the gamma conversion method is selected and the format describes a monochrome image.
Checks to see if a conversion is required or if the source image already has the desired format.
Parameters:
sourcePixelType The pixel type of the source image.
sourcePaddingX The number of extra data bytes at the end of each row. The default value is usually 0.
sourceOrientation The vertical orientation of the image in the image buffer. The default value is usually ImageOrientation_TopDown.
Return: Returns true if the source image already has the desired format. This is done according to the current converter settings.
Error Safety:
Does not throw C++ exceptions.
A conversion may even be required image format does not change e.g. if the gamma conversion method is selected and the format describes a monochrome image.
The source and destination images must be different images.
The source image must be valid.
The format of the source image must be supported by the converter.
The destination image must support the destination format.
The destination image must be able to provide a large enough buffer to hold the image.
Error Safety:
Throws an exception if the passed parameters are not valid. The converter object is still valid after error.
The IReusableImage::Reset() method of the destination image is called to set the destination format. The image is converted to the destination image according to the current converter settings. The padding area of a row in the destination image is set to zero.
Creates a new image by converting an image to a different format.
Parameters:
destinationImage The destination image.
pSourceBuffer The pointer to the buffer of the source image.
sourceBufferSizeBytes The size of the buffer of the source image.
sourcePixelType The pixel type of the source image.
sourceWidth The number of pixels in a row in the source image.
sourceHeight The number of rows in the source image.
sourcePaddingX The number of extra data bytes at the end of each row. The default value is usually 0.
sourceOrientation The vertical orientation of the source image in the image buffer. The default value is usually ImageOrientation_TopDown.
Precondition:
The pixel type must be valid.
The sourceWidth value must be >= 0 and < _I32_MAX.
The sourceHeight value must be >= 0 and < _I32_MAX.
The pointer to the source buffer must not be NULL.
The source buffer must be large enough to hold the image described by the parameters.
The format of the input image represented by the given parameter must be supported by the converter.
The destination image must support the destination format.
The destination image must be able to provide a large enough buffer to hold the image.
The source image buffer and the destination image buffer must not be identical.
Error Safety:
Throws an exception if the passed parameters are not valid. The converter object is still valid after error.
The IReusableImage::Reset() method of the destination image is called to set the destination format. The image is converted to the destination image according to the current converter settings. The padding area of a row in the destination image is set to zero.
The format of the source image must be supported by the converter.
The destination image buffer must be large enough to hold the destination image.
The source image buffer and the destination image buffer must not be identical.
Error Safety:
Throws an exception if the passed parameters are not valid. The converter object is still valid after error.
The image is converted to the destination image according to the current converter settings. The padding area of a row in the destination image is set to zero.
Creates a new image by converting an image to a different format.
Parameters:
pDestinationBuffer The pointer to the buffer of the destination image.
destinationBufferSizeBytes The size of the buffer of the destination image.
pSourceBuffer The pointer to the buffer of the source image.
sourceBufferSizeBytes The size of the buffer of the source image.
sourcePixelType The pixel type of the source image.
sourceWidth The number of pixels in a row in the source image.
sourceHeight The number of rows in the source image.
sourcePaddingX The number of extra data bytes at the end of each row. The default value is usually 0.
sourceOrientation The vertical orientation of the source image in the image buffer. The default value is usually ImageOrientation_TopDown.
Precondition:
The parameters regarding the source buffer must describe a valid image.
The format of the input image represented by the given parameter must be supported by the converter.
If the destination image buffer must be large enough to hold the destination image.
The the source buffer can not be equal the destination buffer.
Error Safety:
Throws an exception if the passed parameters are not valid. The converter object is still valid after error.
The image is converted to the destination image according to the current converter settings. The padding area of a row in the destination image is set to zero.
Additional shifting value used for converting monochrome images - Applies to: ImageFormatConverter.
Additional shifting value used for converting monochrome images. Only effective if the Mono Conversion Method parameter is set to Truncate. If the parameter value isn't zero, the image data is converted using a lookup table. Shifted values exceeding the maximum output value boundary are set to the maximum allowed value. Negative values are treated as right-shifted values.
Sets the alignment of the bits in the target pixel type - Applies to: ImageFormatConverter.
Sets the alignment of the bits in the target pixel type if the target bit depth is greater than the source bit depth, e.g., if you are converting from a 10-bit to a 16-bit format.