ImageGear for C and C++ on Windows v20.5 - Updated
IG_colorspace_conversion_apply_to_raster
API Reference Guide > Core Component API Reference > Core Component Functions Reference > Color Space Conversion Functions > IG_colorspace_conversion_apply_to_raster

This function applies conversion to a single raster.

Declaration:

 
Copy Code
AT_ERRCOUNT ACCUAPI IG_colorspace_conversion_apply_to_raster(
        HIGCSCONVERTER hCSConverter,
        const void* sourceRaster,
        void* resultRaster,
        AT_INT rasterLength
);

Arguments:

Name Type Description
hCSConverter HIGCSCONVERTER Handle of color space converter.
sourceRaster const void* Raster to be converted.
resultRaster void* Raster to store conversion result.
rasterLength AT_INT Number of PIXELS (not bytes!) in raster to convert.

Return Value:

Returns the number of ImageGear errors that occurred during this function call. If there are no errors, the return value is IGE_SUCCESS.

Supported Raster Image Formats:

All pixel formats supported by ImageGear for C and C++.

Sample:

None

Example:

 
Copy Code
/* Use the color space converter to convert a CMYK raster 
to 24-bit RGB.  Then fill a test image with it and save file. */AT_ERRCOUNT nErrcount;  /*
Number of errors on stack */
HIGCSCONVERTER hCSConv; /* Color space converter handle */
HIGEAR hImage;          /* HIGEAR handle of image */
AT_INT depthsCMYK[] = { 8, 8, 8, 8 }; /* CMYK channel depths */
AT_INT depthsRGB[] = { 8, 8, 8 }; /* RGB channel depths */
HIGDIBINFO hDIBCMYK;    /* CMYK DIB info handle */
HIGDIBINFO hDIBRGB;     /* RGB DIB info handle */
AT_DIMENSION x, y, w = 64, h = 64; /* Test image dimensions */
AT_DIMENSION rasterSizeCMYK; /* CMYK raster size */
AT_DIMENSION rasterSizeRGB;  /* RGB raster size */
LPAT_PIXEL lpRasterCMYK;     /* CMYK raster data */
LPAT_PIXEL lpRasterRGB;      /* RGB raster data */
/* Create CMYK test raster (solid yellow) */
nErrcount = IG_DIB_info_create(&hDIBCMYK, w, h, 
    IG_COLOR_SPACE_ID_CMYK, 4, depthsCMYK);
rasterSizeCMYK = IG_DIB_info_raster_size_get(hDIBCMYK);
lpRasterCMYK = (LPAT_PIXEL) calloc(rasterSizeCMYK, 1);
for (x = 0; x <= rasterSizeCMYK - 4; x += 4)
    lpRasterCMYK[x] = 255; /* Yellow */
/* Create RGB test image */
nErrcount = IG_DIB_info_create(&hDIBRGB, w, h, 
    IG_COLOR_SPACE_ID_RGB, 3, depthsRGB);
rasterSizeRGB = IG_DIB_info_raster_size_get(hDIBRGB);
lpRasterRGB = (LPAT_PIXEL) malloc(rasterSizeRGB);
nErrcount = IG_image_create(hDIBRGB, &hImage);
/* Convert CMYK test raster to RGB raster */
nErrcount = IG_colorspace_conversion_create_from_dib_info(
    hDIBCMYK, IG_COLOR_SPACE_ID_RGB, depthsRGB, 3, 
    NULL, &hCSConv);
nErrcount = IG_colorspace_conversion_apply_to_raster(
    hCSConv, lpRasterCMYK, lpRasterRGB, w);
nErrcount = IG_colorspace_conversion_destroy(hCSConv);
/* Fill test image with converted raster */
for (y = 0; y < h; y++)
    nErrcount = IG_DIB_raster_set(hImage, y, lpRasterRGB, 
        IG_PIXEL_UNPACKED);
/* Save test image to a file and clean up */
nErrcount = IG_save_file(hImage, "test.bmp", IG_SAVE_BMP_UNCOMP);
nErrcount = IG_DIB_info_delete(hDIBRGB);
nErrcount = IG_DIB_info_delete(hDIBCMYK);
nErrcount = IG_image_delete(hImage);
free(lpRasterCMYK);
free(lpRasterRGB);

Remarks:

The resultRaster argument should be sufficient to store the converted pixels. If the result raster is run-ends, the store must be suitable to contain the most capacious case. The rasterLength argument specifies the quantity of pixels (not bytes!) in the raster.

Is this page helpful?
Yes No
Thanks for your feedback.