Updates the lookup table, based on a curve that passes through the specified points.
#include "l_bitmap.h"
L_LTIMGEFX_API L_INT L_GetUserLookUpTable (pLookupTable, uLookupLen, apUserPoint, uUserPointCount, puPointCount, uFlags)
Pointer to the lookup table to be filled by this function. The length of the lookup table is specified in the uLookupLen
parameter.
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 |
Pointer to an array of POINT structures that contain the points on the curve used to update the lookup table.
Number of points in the apUserPoint
array.
Pointer to a variable to be updated with the number of entries in the lookup table that were actually updated.
Reserved for future use. Must be 0.
Value | Meaning |
---|---|
SUCCESS | The function was successful. |
< 1 | An error occurred. Refer to Return Codes. |
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 L_RemapBitmapIntensity function.
Win32, x64, Linux.
This example will brighten the loaded bitmap using the lookup table updated by the L_GetUserLookUpTable function.
L_INT GetUserLookUpTableExample(L_VOID)
{
L_INT nRet;
L_UINT LookupTable[256]; /* Array to hold lookup table*/
BITMAPHANDLE LeadBitmap; /*Bitmap handle to hold the loaded image */
POINT apUserPoint[3] = { {0,0},{128,150},{255,255} };
/* Load the bitmap, force 24 bits per pixel */
nRet = L_LoadBitmap(MAKE_IMAGE_PATH(TEXT("Master.jpg")), &LeadBitmap, sizeof(BITMAPHANDLE), 24, ORDER_BGR, NULL, NULL);
if (nRet != SUCCESS)
return nRet;
/*Get Lookup table where the array effected by user data function */
nRet = L_GetUserLookUpTable(LookupTable, 256, apUserPoint, 3, NULL, 0);
if (nRet != SUCCESS)
return nRet;
nRet = L_RemapBitmapIntensity(&LeadBitmap, (L_INT*)LookupTable, 256, CHANNEL_MASTER);
if (nRet != SUCCESS)
return nRet;
nRet = L_SaveBitmap(MAKE_IMAGE_PATH(TEXT("Result.BMP")), &LeadBitmap, FILE_BMP, 24, 0, NULL);
if (nRet != SUCCESS)
return nRet;
//free bitmap
if (LeadBitmap.Flags.Allocated)
L_FreeBitmap(&LeadBitmap);
return SUCCESS;
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document