RGBA to RGB Color Conversion#

Converts an image from RGBA to RGB format.


This function can operate with ROI (see Image Regions of Interest).

This function performs conversion from RGBA image to RGB image leaving pixel values unchanged, only changing number of channels from 4 channels to 3 channels. Alpha channel is ignored and its values are lost.




template<typename SrcImageT, typename DstImageT>
sycl::event oneapi::ipl::rgba_to_rgb(sycl::queue &queue, SrcImageT &src, DstImageT &dst, const color_conversion_spec<typename DstImageT::data_t> &spec = {}, const std::vector<sycl::event> &dependencies = {})#

Function for RGBA to RGB color conversion.

Template Parameters
  • SrcImageT – Source image type

  • DstImageT – Destination image type

  • queue – SYCL queue object

  • src – Source image object

  • dst – Destination image object

  • spec – Specification for convert function

  • dependencies – SYCL event dependencies


SYCL event


See Parameters of Color Conversion (spec).


compile-time data type check

Indicates an error when image data type is not supported.

invalid_argument exception

Indicates an error when ROI sizes of the source image and the destination image are not equal.

invalid_argument exception

Indicates an error when one of the pitch values is not divisible by size of component data type in bytes.

The code example below demonstrates how shall be called oneapi::ipl::rgba_to_rgb for RGBA to RGB conversion:

using namespace oneapi;

sycl::queue                 queue;
ipl::shared_usm_allocator_t allocator{ queue };
const sycl::range<2>        image_size{ height, width };

// Source image for RGBA data
ipl::image<ipl::layouts::channel4, std::uint8_t> src_image{ queue, p_image_data, image_size, allocator };
// Destination image for RGB data
ipl::image<ipl::layouts::channel3, std::uint8_t> dst_image{ image_size, allocator };

// Convert RGBA to RGB
auto event = ipl::rgba_to_rgb(queue, src_image, dst_image);