L_IsGrayScaleBitmap

#include "l_bitmap.h"

L_LTKRN_API L_INT L_IsGrayScaleBitmap(pBitmap)

Returns an indicator that shows the kind of grayscale palette, if any, that a bitmap has.

Parameters

pBITMAPHANDLE pBitmap

Pointer to the bitmap handle referencing the bitmap to test.

Returns

Value Meaning
GRAY_NO [0] Not grayscale.
GRAY_ORDEREDNORMAL [1] Normally ordered grayscale (dark to light).
GRAY_ORDEREDINVERSE [2] Reverse ordered grayscale (light to dark).
GRAY_NOTORDERED [3] Unordered grayscale.

Comments

Grayscale images can be 1-bit, 4-bit, 8-bit, 12-bit or 16-bit. With a 1-bit image, you can use this function to check for inversion (for example, white lines on a black background) caused by an inverted palette.

Required DLLs and Libraries

Platforms

Win32, x64, Linux.

See Also

Functions

Topics

Example

Use L_IsGrayScaleBitmap to decide how to save an image.

L_INT IsGrayScaleBitmapExample(L_VOID) 
{ 
   L_INT          nRet;       /* Return value */ 
   BITMAPHANDLE   LeadBitmap; /* Bitmap handle for the image */ 
 
   /* Load a bitmap at its own bits per pixel  */ 
   nRet = L_LoadBitmap (MAKE_IMAGE_PATH(TEXT("IMAGE1.CMP")), &LeadBitmap, sizeof(BITMAPHANDLE), 0, ORDER_BGR, NULL, NULL); 
   if(nRet != SUCCESS) 
      return nRet; 
   /* See if the bitmap is grayscale */ 
   nRet = L_IsGrayScaleBitmap(&LeadBitmap); 
 
   /* Save 24-bit CMP for color, or 8-bit CMP for grayscale */ 
   if (nRet == GRAY_NO) 
      L_SaveBitmap(MAKE_IMAGE_PATH(TEXT("TEST.CMP")), &LeadBitmap, FILE_CMP, 24, QS, NULL); 
   else 
      L_SaveBitmap(MAKE_IMAGE_PATH(TEXT("TEST.CMP")), &LeadBitmap, FILE_CMP, 8, QS, NULL); 
   if(LeadBitmap.Flags.Allocated) 
      L_FreeBitmap(&LeadBitmap);   
   return SUCCESS; 
} 

Help Version 20.0.2020.4.3
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2020 LEAD Technologies, Inc. All Rights Reserved.

LEADTOOLS Raster Imaging C API Help