Adjusts the intensity of colors in a bitmap by changing the gamma constant that is used to map the intensity values. Either of two different color spaces can be specified.


#include "ltwrappr.h"

L_INT LBitmap::GammaCorrectExt(uGamma, uFlags)


L_UINT uGamma

Any value greater than 0 that represents the gamma value. This value is divided internally by 100.

L_UINT uFlags

Flag that indicates which color space to use. Possible values are:

Value Meaning
RGB_SPACE [0x0001] Adjust the intensity of the pixel colors across the RGB color space.
YUV_SPACE [0x0002] Adjust the intensity of the pixel colors across the YUV color space.


Value Meaning
SUCCESS The function was successful.
< 1 An error occurred. Refer to Return Codes.


This function is like the LBitmap::GammaCorrect function, but has been extended to allow the specification of the color space to be used.

Intensity values ideally follow a logarithmic progression, because the eye perceives changes in intensity as being equal when the ratio of change is equal. For example, we would see a change from 0.1 to 0.2 as being equal to a change from 0.2 to 0.4.

Gamma is a standard constant that is used to calculate the progression. For most CRTs the gamma constant is in the range of 2.2 to 2.5.

To update a status bar or detect a user interrupt during execution of this function, refer to LBase::EnableStatusCallback.

This function supports 12 and 16-bit grayscale and 48 and 64-bit color images. Support for 12 and 16-bit grayscale and 48 and 64-bit color images is available only in the Document/Medical toolkits.

This function does not support 32-bit grayscale images. It returns the error code ERROR_GRAY32_UNSUPPORTED if a 32-bit grayscale image is passed to this function.

Required DLLs and Libraries


Win32, x64.

See Also




L_INT LBitmap__GammaCorrectExtExample() 
   L_INT nRet; 
   LBitmap LeadBitmap; 
   nRet =LeadBitmap.Load(MAKE_IMAGE_PATH(TEXT("sample5.cmp")), 0,ORDER_BGR); 
   if(nRet !=SUCCESS) 
      return nRet; 
   nRet =LeadBitmap.GammaCorrectExt (250, YUV_SPACE); 
   if(nRet !=SUCCESS) 
      return nRet; 
   return SUCCESS; 
Help Version 22.0.2023.2.2
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Raster Imaging C++ Class Library Help