←Select platform

GetUserLookupTable Method

Summary
Updates the lookup table, based on a curve that passes through the specified points.
Syntax
C#
Objective-C
C++/CLI
Java
Python
public static int GetUserLookupTable( 
   int[] lookupTable, 
   LeadPoint[] userPoints 
) 
+ (NSUInteger)getUserLookupTable:(unsigned int *)lookupTable 
               lookupTableLength:(NSUInteger)lookupTableLength 
                      userPoints:(const LeadPoint *)userPoints 
                 userPointsCount:(NSUInteger)userPointsCount 
                           error:(NSError **)error 
public static int getUserLookupTable( 
   int[] lookupTable, 
   LeadPoint[] userPoints 
); 
public: 
static int GetUserLookupTable(  
   array<int>^ lookupTable, 
   array<LeadPoint>^ userPoints 
)  
def GetUserLookupTable(self,lookupTable,] userPoints): 

Parameters

lookupTable
Lookup table array to be filled by this method.

userPoints
Array of LeadPoint structures that contain the points on the curve used to update the lookup table.

Return Value

return the number of entries in the lookup table array that were actually updated by this method.

Remarks
  • This method will update the lookup table array using the best curve that passes through the points specified in the userPoint array. The points in the array do not need to be sorted. In most cases, this method is used with the RemapIntensityCommand method.
  • The length of the lookup table array depends upon the number of bits being used, as follows:

    Value Meaning
    65536 16-bit / sample image
    4096 12-bit / sample image
    256 256 8-bit / sample image
Example

This example will brighten the loaded bitmap using the lookup table updated by the GetUserLookupTable method.

C#
Java
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.ImageProcessing; 
using Leadtools.ImageProcessing.Effects; 
using Leadtools.ImageProcessing.Color; 
 
 
public void GetUserLookupTableExample() 
{ 
   // Load an image 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.ThrowExceptionsOnInvalidImages = true; 
 
   RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Master.jpg")); 
 
   // Prepare the command 
   int[] LookupTable = new int[256]; 
   LeadPoint[] UserPoint = new LeadPoint[3]; 
   UserPoint[0] = new LeadPoint(0, 0); 
   UserPoint[1] = new LeadPoint(128, 150); 
   UserPoint[2] = new LeadPoint(255, 255); 
 
   //Get Lookup table where the array effected by user data method. 
   EffectsUtilities.GetUserLookupTable(LookupTable, UserPoint); 
   RemapIntensityCommand command = new RemapIntensityCommand(); 
   command.Flags = RemapIntensityCommandFlags.Master; 
   command.LookupTable = LookupTable; 
   command.Run(image); 
   codecs.Save(image, Path.Combine(LEAD_VARS.ImagesDir, "Result.jpg"), RasterImageFormat.Jpeg, 24); 
 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
} 
 
import java.io.File; 
import java.io.IOException; 
 
import org.junit.*; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 
import static org.junit.Assert.*; 
 
import leadtools.*; 
import leadtools.codecs.*; 
import leadtools.imageprocessing.color.*; 
import leadtools.imageprocessing.effects.*; 
 
 
public void getUserLookupTableExample() { 
   final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
 
   // Load an image 
   RasterCodecs codecs = new RasterCodecs(); 
   codecs.setThrowExceptionsOnInvalidImages(true); 
 
   RasterImage image = codecs.load(combine(LEAD_VARS_IMAGES_DIR, "Master.jpg")); 
 
   // Prepare the command 
   int[] lookupTable = new int[256]; 
   LeadPoint[] userPoint = new LeadPoint[3]; 
   userPoint[0] = new LeadPoint(0, 0); 
   userPoint[1] = new LeadPoint(128, 150); 
   userPoint[2] = new LeadPoint(255, 255); 
 
   // Get Lookup table where the array effected by user data method. 
   EffectsUtilities.getUserLookupTable(lookupTable, userPoint); 
   RemapIntensityCommand command = new RemapIntensityCommand(); 
   command.setFlags(RemapIntensityCommandFlags.MASTER.getValue()); 
   command.setLookupTable(lookupTable); 
   int change = command.run(image); 
   assertTrue(change != RasterImageChangedFlags.NONE); 
 
   codecs.save(image, combine(LEAD_VARS_IMAGES_DIR, "Result.jpg"), RasterImageFormat.JPEG, 24); 
   System.out.println("Command run, and image saved to " + combine(LEAD_VARS_IMAGES_DIR, "Result.jpg")); 
} 
Requirements

Target Platforms

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

Leadtools.ImageProcessing.Effects Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.