Converts a 1-, 4-, 8-, 16-, 24-, or 32-bit bitmap to an 8-bit, 12-bit, 16-bit or 32-bit grayscale bitmap. Support for 12 ,16 and 32-bit grayscale images is available only in the Document/Medical toolkits.


#include "ltwrappr.h"

virtual L_INT LBitmapBase::GrayScale(nBitsPerPixel=8)


L_INT nBitsPerPixel

Value indicating the number of bits in the destination bitmap. Valid values are 8, 12, 16, or 32.


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


The resulting bitmap can be an 8-bit, 12-bit, 16-bit or 32-bit grayscale bitmap. Once the function is complete, the Order member of the bitmap handle is set to ORDER_GRAY.

When converting to 12-bit, 16-bit or 32-bit grayscale, a Lookup table is not used. When converting to 8-bit grayscale, a Lookup table is used to get the RGB for each input pixel. The grayscale value corresponding to that RGB triple is used in the destination bitmap.

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

Grayscale 8-bit Function - Before

Grayscale 8-bit Function - Before

Grayscale 8-bit Function - After

Grayscale 8-bit Function - After

View additional platform support for this Grayscale 8-bit function.

Required DLLs and Libraries


Win32, x64.

See Also




L_INT LBitmapBase__GrayScaleExample() 
   L_INT nRet; 
   LBitmapBase MyBitmap; 
   nRet =MyBitmap.Load(24); 
   if(nRet !=SUCCESS) 
      return nRet; 
      nRet = MyBitmap.GrayScale(8); 
   return nRet; 
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