L_IsGrayScaleBitmap

#include "l_bitmap.h"

L_INT EXT_FUNCTION 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

Windows 95 / 98 / Me, Windows 2000 / XP, Windows CE.

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 nRet; /* Return value */
BITMAPHANDLE LeadBitmap;   /* Bitmap handle for the image */
/* Load a bitmap at its own bits per pixel  */
L_LoadBitmap
 (TEXT("TEST2.TGA"), &LeadBitmap, sizeof(BITMAPHANDLE), 0, ORDER_BGR, NULL, NULL);
/* 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(TEXT("TEST.CMP"), &LeadBitmap, FILE_CMP, 24, QS, NULL);
else
   L_SaveBitmap(TEXT("TEST.CMP"), &LeadBitmap, FILE_CMP, 8, QS, NULL);