L_IsGrayScaleBitmap

#include "l_bitmap.h"

L_LTKRN_API L_INT L_IsGrayScaleBitmap(pBitmap)

pBITMAPHANDLE pBitmap;

/* pointer to the bitmap handle */

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

Parameter

Description

pBitmap

Pointer to the bitmap handle referencing the bitmap to test.

Returns

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

LTKRN

For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application.

Platforms

Win32, x64, Mobile.

See Also

Functions:

L_GrayScaleBitmap

Topics:

Raster Image Functions: Doing Color Expansion or Reduction

 

Color Halftone and Halftone Images

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;
}