ImageGear for C and C++ on Linux v18.8 - Updated
IG_image_channel_depths_change
API Reference Guide > Core Component API Reference > Core Component Functions Reference > Image Channel Functions > IG_image_channel_depths_change

This function changes the bit depths of the image channels to the specified depths.

Declaration:

 
Copy Code
AT_ERRCOUNT ACCUAPI IG_image_channel_depths_change(
        HIGEAR hIGear,
        const AT_INT* newDepths,
        AT_MODE scaleMode
);

Arguments:

Name Type Description
hIGear HIGEAR HIGEAR handle of image.
newDepths const AT_INT* New channel depths to set.
scaleMode AT_MODE Mode to use for scaling channel depths - must be one of the following: IG_DEPTH_CHANGE_SCALE or IG_DEPTH_CHANGE_NO_SCALE.

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++.

Example:

 
Copy Code
/* Alter a 24-bit RGB image to have full 8-bit precision 
   for green, but only 1-bit precision for red and blue */
AT_ERRCOUNT nErrcount;  /* Number of errors on stack */
HIGEAR hImage;          /* HIGEAR handle of image */
AT_INT depths[] = { 1, 8, 1 }; /* New channel depths */
nErrcount = IG_load_file("test.jpg", &hImage);
nErrcount = IG_image_channel_depths_change(hImage, depths,
    IG_DEPTH_CHANGE_SCALE);
nErrcount = IG_save_file(hImage, "test.bmp", 
    IG_SAVE_BMP_UNCOMP);
nErrcount = IG_image_delete(hImage);

Remarks:

If scaling is used, pixel data is scaled to match the new bit depths. Otherwise, pixel data will remain unchanged and will be interpreted as conforming to the new depths.