LBitmap::GetUserLookupTable

#include "ltwrappr.h"

virtual L_INT LBitmap::GetUserLookupTable (pLookupTable, uLookupLen, apUserPoint, uUserPointCount, puPointCount)

L_UINT * pLookupTable;

/* lookup table */

L_UINT uLookupLen;

/* lookup table length */

POINT *apUserPoint;

/* array of points */

L_UINT uUserPointCount;

/* number of points in the array */

L_UINT *puPointCount;

/* pointer to a variable to be updated */

Updates the lookup table, based on a curve that passes through the specified points.

Parameter

Description

pLookupTable

Pointer to the lookup table to be filled by this function. The length of the lookup table is specified in the uLookupLen parameter.

uLookupLen

Length of the lookup table pointed to by the pLookupTable parameter. Possible values are:

 

Value

Meaning

 

65536

16-bit / sample image

 

4096

12-bit / sample image

 

256

8-bit / sample image

apUserPoint

Pointer to an array of POINT structures that contain the points on the curve used to update the lookup table.

uUserPointCount

Number of points in the apUserPoint array.

puPointCount

Pointer to a variable to be updated with the number of entries in the lookup table that were actually updated.

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

This function will update the lookup table array using the best curve that passes through the points specified in the apUserPoint parameter. The points in the array may be sorted or not. In most cases, this function is used with the LBitmap::RemapIntensity function.

Required DLLs and Libraries

LTIMGEFX

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

See Also

Functions:

LBitmap::AdjustTint, LBitmap::GammaCorrectExt, LBitmap::GetFunctionalLookupTable, LBitmap::RemapIntensity

Topics:

Changing Brightness and Contrast

 

Raster Image Functions: Modifying Intensity Values

 

Raster Image Functions: Changing Brightness and Contrast

Example

L_INT LBitmap__GetUserLookupTableExample(LBitmap & Bitmap, L_TCHAR * pszFile)
{
   L_INT nRet;
   L_UINT LookupTable[256];
   POINT apUserPoint[3] = { {0, 0}, {128, 150}, {255, 255} };
   nRet =Bitmap.Load(pszFile, 24, ORDER_BGR);
   if(nRet !=SUCCESS)
      return nRet;
   nRet =Bitmap.GetUserLookupTable(LookupTable, 256, apUserPoint, 3, NULL);
   if(nRet !=SUCCESS)
      return nRet;
   nRet =Bitmap.RemapIntensity((L_INT*)LookupTable, 256, CHANNEL_MASTER);
   if(nRet !=SUCCESS)
      return nRet;
   return SUCCESS;
}