LEADTOOLS Image Processing (Leadtools.ImageProcessing.Effects assembly) Send comments on this topic. | Back to Introduction - All Topics | Help Version 17.0.3.29
GetUserLookupTable Method
See Also 
Leadtools.ImageProcessing.Effects Namespace > EffectsUtilities Class : GetUserLookupTable Method



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.
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.
Updates the lookup table, based on a curve that passes through the specified points. Supported in Silverlight, Windows Phone 7

Syntax

Visual Basic (Declaration) 
Public Shared Function GetUserLookupTable( _
   ByVal lookupTable() As Integer, _
   ByVal userPoints() As LeadPoint _
) As Integer
Visual Basic (Usage)Copy Code
Dim lookupTable() As Integer
Dim userPoints() As LeadPoint
Dim value As Integer
 
value = EffectsUtilities.GetUserLookupTable(lookupTable, userPoints)
C# 
public static int GetUserLookupTable( 
   int[] lookupTable,
   LeadPoint[] userPoints
)
C++/CLI 
public:
static int GetUserLookupTable( 
   array<int>^ lookupTable,
   array<LeadPoint>^ 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.

Example

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

Visual BasicCopy Code
Public Sub GetUserLookupTableExample()
   Dim codecs As New RasterCodecs()
   codecs.ThrowExceptionsOnInvalidImages = True

   Dim leadImage As RasterImage = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Master.jpg"))

   ' Prepare the command
   Dim LookupTable() As Integer
   ReDim LookupTable(255)
   Dim UserPoint() As LeadPoint
   ReDim UserPoint(2)

   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)
   Dim command As RemapIntensityCommand = New RemapIntensityCommand
   command.Flags = RemapIntensityCommandFlags.Master
   command.LookupTable = LookupTable
   command.Run(leadImage)
   codecs.Save(leadImage, Path.Combine(LEAD_VARS.ImagesDir, "Result.jpg"), RasterImageFormat.Jpeg, 24)

End Sub

Public NotInheritable Class LEAD_VARS
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
C#Copy Code
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:\Users\Public\Documents\LEADTOOLS Images";
}
SilverlightCSharpCopy Code
public void GetUserLookupTableExample(RasterImage image, Stream outStream)
{
   // 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);
   // Save result image
   RasterCodecs codecs = new RasterCodecs();
   codecs.Save(image, outStream, RasterImageFormat.Jpeg, 24);
   image.Dispose();
}
SilverlightVBCopy Code
Public Sub GetUserLookupTableExample(ByVal image As RasterImage, ByVal outStream As Stream)
   ' Prepare the command
   Dim LookupTable As Integer() = New Integer(255){}
   Dim UserPoint As LeadPoint() = New LeadPoint(2){}
   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)
   Dim command As RemapIntensityCommand = New RemapIntensityCommand()
   command.Flags = RemapIntensityCommandFlags.Master
   command.LookupTable = LookupTable
   command.Run(image)
   ' Save result image
   Dim codecs As RasterCodecs = New RasterCodecs()
   codecs.Save(image, outStream, RasterImageFormat.Jpeg, 24)
   image.Dispose()
End Sub

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 Leadtools.ImageProcessing.Color.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

Requirements

Target Platforms: Silverlight 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7, MAC OS/X (Intel Only)

See Also