ImageGear for C and C++ on Windows v21.0 - Updated
API Reference Guide / Core Component API Reference / Core Component Functions Reference / Image Channel Functions / IG_image_channel_copy_create
In This Topic
    IG_image_channel_copy_create
    In This Topic

    This function creates a new image by copying a single channel from an existing image.

    Declaration:

     
    Copy Code
    AT_ERRCOUNT ACCUAPI IG_image_channel_copy_create(
            LPCAT_CHANNEL_REF source,
            LPAT_CHANNEL_REF copy
    );
    

    Arguments:

    Name Type Description
    source LPCAT_CHANNEL_REF Location of source channel to copy.
    copy LPAT_CHANNEL_REF Location of new image with copied channel.

    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
    /* Extract the first alpha channel if one exists */
    /* Otherwise, extract the first color channel */
    AT_ERRCOUNT nErrcount;  /* Number of errors on stack */
    HIGEAR hImage;          /* Handle of source image */
    AT_CHANNEL_REF srcChan; /* Channel to copy */
    AT_CHANNEL_REF dstChan; /* New image with copied channel */
    enumIGColorSpaceIDs cs; /* Source image's color space */
    AT_INT nColorChannels;  /* Number of color channels */
    nErrcount = IG_load_file("alpha.tif", &hImage);
    nErrcount = IG_image_colorspace_get(hImage, &cs);
    nColorChannels = IG_util_colorspace_color_count_get(cs);
    srcChan.hImage = hImage;
    if (IG_util_colorspace_contains_alpha(cs))
        srcChan.uNumber = nColorChannels; /* First alpha channel */
    else
        srcChan.uNumber = 0; /* First color channel */
    nErrcount = IG_image_channel_copy_create(&srcChan, &dstChan);
    hCopy = dstChan.hImage;
    nErrcount = IG_save_file(dstChan.hImage, "alpha.bmp", 
        IG_SAVE_BMP_UNCOMP);
    nErrcount = IG_image_delete(hImage);
    

    Remarks:

    Specify in source the image and channel index to copy. If the copy is successful, copy will contain the HIGEAR handle of a newly allocated image containing the copied channel. The channel index in copy will always be set to 0. You are responsible for freeing the new image with IG_image_delete.