ImageGear for C and C++ on Linux v19.10 - Updated
Image Processing and Cleanup
User Guide > How to Work with... > Image Processing and Cleanup

ImageGear's comprehensive family of image processing functions permits you to perform both simple and complex image-modifying operations using a single function call. Image alterations such as contrast enhancement, sharpness adjustment, color reduction/promotion, image merging ("blending"), and "special effects" are performed using the functions in this group.

Image processing functions are always named beginning with IG_IP_ ...() or IG_FX_ ...(). Be careful not to confuse these functions with IG_dspl_image_draw ...() functions designed to perform similar operations while displaying images. The IG_dspl_image_draw ...() functions affect only how the image will be displayed. The image processing functions actually alter the pixel data in the DIB image bitmap, or the DIB palette, or both.

Many image processing functions permit you to specify a rectangular region within your image, limiting the function's operation to that region. In such cases, the address of an AT_RECT structure is supplied as an argument (specify this argument as NULL to operate on the entire image).

The "image rectangle" setting made by calls to function IG_dspl_layout_set() is not used by the image processing functions.

In this section, ImageGear's image processing functions are grouped as shown below. You may want to refer to the individual discussions of the groups as they become pertinent to your application's development needs.

If you encounter an occasional image processing term with which you are not familiar, be sure to refer to the Glossary. Also, refer to the function entries in the Core Component API Function Reference for the detailed calling sequences and additional information and examples. In a function's entry, be sure to check the "Bits Per Pixel" line. It specifies which bit depths may be processed using that function. The descriptions of the different bit depths (1, 4, 8i, 8-bit gray level, 9-16-bit gray level, 24, and 32) and how they are stored internally in the DIB image bitmap in memory, can be found in Understanding Bitmap Images.

A number of image processing functions can process 8-bit gray level and 24-bit images, but cannot process 8i (8-bit indexed color) images. This is because in 8i images the pixel value does not itself describe the pixel (its color or its intensity), but is merely an index into the palette. If you want to call such a function for an 8i image, first promote the image to 24-bit using function IG_IP_color_promote().