ImageGear for C and C++ on Windows v21.0 - Updated
API Reference Guide / Core Component API Reference / Core Component Functions Reference / Color Space Conversion Functions / IG_colorspace_conversion_create
In This Topic
    IG_colorspace_conversion_create
    In This Topic

    This function creates conversion engine based on the source and the result color space attributes.

    Declaration:

     
    Copy Code
    AT_ERRCOUNT ACCUAPI IG_colorspace_conversion_create(
            enumIGColorSpaceIDs sourceSpace,
            const AT_RGBQUAD* sourceSpaceAttribs,
            const AT_INT* sourceChannelDepths,
            AT_INT sourceChannelCount,
            enumIGColorSpaceIDs resultSpace,
            const AT_INT* resultChannelDepths,
            AT_INT resultChannelCount,
            LPCAT_COLORSPACE_CONVERSION_OPTIONS options,
            HIGCSCONVERTER* hCSConverter
    );
    

    Arguments:

    Name Type Description
    sourceSpace enumIGColorSpaceIDs Color space from which to convert.
    sourceSpaceAttribs const AT_RGBQUAD* Source color space attributes.
    sourceChannelDepths const AT_INT* Array of channel depths for source color space.
    sourceChannelCount AT_INT Number of channels in source color space.
    resultSpace enumIGColorSpaceIDs Color space to which to convert.
    resultChannelDepths const AT_INT* Array of channel depths in resulting color space.
    resultChannelCount AT_INT Number of channels in resulting color space.
    options LPCAT_COLORSPACE_CONVERSION_OPTIONS Conversion options.
    hCSConverter HIGCSCONVERTER* Handle of color space converter.

    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 an image 
       from CMYK to 24-bit RGB, no alpha or extra channels */
    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 */
    nErrcount = IG_colorspace_conversion_create(
        IG_COLOR_SPACE_ID_CMYK, NULL, depthsCMYK, 4, 
        IG_COLOR_SPACE_ID_RGB, depthsRGB, 3, 
        NULL, &hCSConv);
    nErrcount = IG_colorspace_conversion_apply_to_image(
        hCSConv, hImage);
    nErrcount = IG_colorspace_conversion_destroy(hCSConv);
    

    Remarks:

    NULL is an acceptable value for resultChannelDepths. In this case the result channels will be constructed using IG_colorspace_conversion_result_channels_build() routine. Options controls the conversion flow. You may pass NULL for Options if you don't want to specify any options.

    For the detailed information about AT_COLORSPACE_CONVERSION_OPTIONS structure and the whole color conversion process please refer to the section Working with Color Space Conversion Engine.