Leadtools.ColorConversion Send comments on this topic. | Back to Introduction - All Topics | Help Version 15.5.7
IccLookupTable16TagType Class
See Also  Members   Example 
Leadtools.ColorConversion Namespace : IccLookupTable16TagType Class




Contains the lut16Type tag type data.

Object Model


Syntax

Visual Basic (Declaration) 
Public Class IccLookupTable16TagType 
   Inherits IccTagTypeBase
Visual Basic (Usage)Copy Code
Dim instance As IccLookupTable16TagType
C# 
public class IccLookupTable16TagType : IccTagTypeBase 
Managed Extensions for C++ 
public __gc class IccLookupTable16TagType : public IccTagTypeBase 
C++/CLI 
public ref class IccLookupTable16TagType : public IccTagTypeBase 

Example

This example method can be used in creating an "lut16Type" mentioned in the ICC.1:2004-10 specification, the following information is used: input channels = 3, output channels = 3, Matrix: {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, CLUT points = 8, Input Entries = 2, Output Entries = 2.

Visual BasicCopy Code
Public Sub IccLookupTable16TagTypeExample()
   ' load an Icc Profile
   Dim iccProfile As New IccProfileExtended("C:\Program Files\LEAD Technologies\LEADTOOLS 15\Images\EmptyIcc.icc")

   ' these arrays should be filled with the appropriate data
   ' input table will be (InputChannels(3) * InputEntries(2)) shorts
   ' output table will be (OutputChannels(3) * OutputEntries(2)) shorts
   ' clut table will be ((CLUTPoints(8) ^ InputChannels(3)) * OutputChannels(3)) shorts
   Dim inputTables(5) As UShort
   Dim colorLUTTables(1535) As UShort
   Dim outputTables(5) As UShort

   ' fill the tables
   inputTables(0) = 0
   inputTables(1) = 65535
   inputTables(2) = 0
   inputTables(3) = 65535
   inputTables(4) = 0
   inputTables(5) = 65535

   outputTables(0) = 0
   outputTables(1) = 65535
   outputTables(2) = 0
   outputTables(3) = 65535
   outputTables(4) = 0
   outputTables(5) = 65535

   Dim nI As Integer = 0
   Dim rI As Integer = 0
   Dim gI As Integer = 0
   Dim bI As Integer = 0

   For rI = 0 To 255 Step +32
      For gI = 0 To 255 Step +32
         For bI = 0 To 255 Step +32
            colorLUTTables(nI) = CUShort(Math.Min(Math.Max(0, rI * 256), 65535))
            nI = nI + 1
            colorLUTTables(nI) = CUShort(Math.Min(Math.Max(0, gI * 256), 65535))
            nI = nI + 1
            colorLUTTables(nI) = CUShort(Math.Min(Math.Max(0, bI * 256), 65535))
            nI = nI + 1
         Next bI
      Next gI
   Next rI

   ' create new IccLookupTable16 class
   Dim iccCLUT16 As New IccLookupTable16(3, 3, 8, _
         IccTools.FromDoubleTo2bFixed2bNumber(1.0), _
         IccTools.FromDoubleTo2bFixed2bNumber(0.0), _
         IccTools.FromDoubleTo2bFixed2bNumber(0.0), _
         IccTools.FromDoubleTo2bFixed2bNumber(0.0), _
         IccTools.FromDoubleTo2bFixed2bNumber(1.0), _
         IccTools.FromDoubleTo2bFixed2bNumber(0.0), _
         IccTools.FromDoubleTo2bFixed2bNumber(0.0), _
         IccTools.FromDoubleTo2bFixed2bNumber(0.0), _
         IccTools.FromDoubleTo2bFixed2bNumber(1.0), _
         inputTables, _
         colorLUTTables, _
         outputTables)

   ' define the tag type
   Dim iccCLUT16TagType As New IccLookupTable16TagType(iccCLUT16)

   ' add the new tag to the ICC Profile
   iccProfile.AddTag(iccCLUT16TagType, IccTag.BToA0Tag, IccTagTypeBase.Lut16TypeSignature)

   ' generate the new profile id
   iccProfile.GenerateProfileId()

   ' update the icc array with the new changes
   iccProfile.UpdateDataArray()

   ' write the Icc Profile into a new file
   iccProfile.GenerateIccFile("C:\Program Files\LEAD Technologies\LEADTOOLS 15\Images\IccLookupTable16TagTypeVB.icc")
End Sub
C#Copy Code
public void IccLookupTable16TagTypeExample() 

   // load an Icc Profile 
   IccProfileExtended iccProfile = new IccProfileExtended(@"C:\Program Files\LEAD Technologies\LEADTOOLS 15\Images\EmptyIcc.icc"); 
 
   // these arrays should be filled with the appropriate data 
   // input table will be (InputChannels(3) * InputEntries(2)) shorts 
   // output table will be (OutputChannels(3) * OutputEntries(2)) shorts 
   // clut table will be ((CLUTPoints(8) ^ InputChannels(3)) * OutputChannels(3)) shorts 
   ushort[] inputTables = new ushort[6]; 
   ushort[] colorLUTTables = new ushort[1536]; 
   ushort[] outputTables = new ushort[6]; 
 
   // fill the tables 
   inputTables[0] = 0; 
   inputTables[1] = 65535; 
   inputTables[2] = 0; 
   inputTables[3] = 65535; 
   inputTables[4] = 0; 
   inputTables[5] = 65535; 
 
   outputTables[0] = 0; 
   outputTables[1] = 65535; 
   outputTables[2] = 0; 
   outputTables[3] = 65535; 
   outputTables[4] = 0; 
   outputTables[5] = 65535; 
 
   int nI = 0; 
   for (int rI = 0; rI < 256; rI += 32) 
   { 
      for (int gI = 0; gI < 256; gI += 32) 
      { 
         for (int bI = 0; bI < 256; bI += 32) 
         { 
            colorLUTTables[nI++] = (ushort)Math.Min(Math.Max(0, rI * 256), 65535); 
            colorLUTTables[nI++] = (ushort)Math.Min(Math.Max(0, gI * 256), 65535); 
            colorLUTTables[nI++] = (ushort)Math.Min(Math.Max(0, bI * 256), 65535); 
         } 
      } 
   } 
 
   // create new IccLookupTable16 class 
   IccLookupTable16 iccLUT16 = new IccLookupTable16(3, 3, 8, 
      IccTools.FromDoubleTo2bFixed2bNumber(1.0), 
      IccTools.FromDoubleTo2bFixed2bNumber(0.0), 
      IccTools.FromDoubleTo2bFixed2bNumber(0.0), 
      IccTools.FromDoubleTo2bFixed2bNumber(0.0), 
      IccTools.FromDoubleTo2bFixed2bNumber(1.0), 
      IccTools.FromDoubleTo2bFixed2bNumber(0.0), 
      IccTools.FromDoubleTo2bFixed2bNumber(0.0), 
      IccTools.FromDoubleTo2bFixed2bNumber(0.0), 
      IccTools.FromDoubleTo2bFixed2bNumber(1.0), 
      inputTables, 
      colorLUTTables, 
      outputTables); 
 
   // define the tag type 
   IccLookupTable16TagType iccLUT16TagType = new IccLookupTable16TagType(iccLUT16); 
 
   // add the new tag to the ICC Profile 
   iccProfile.AddTag(iccLUT16TagType, IccTag.BToA0Tag, IccTagTypeBase.Lut16TypeSignature); 
 
   // generate the new profile id 
   iccProfile.GenerateProfileId(); 
 
   // update the icc array with the new changes 
   iccProfile.UpdateDataArray(); 
 
   // write the Icc Profile into a new file 
   iccProfile.GenerateIccFile(@"C:\Program Files\LEAD Technologies\LEADTOOLS 15\Images\IccLookupTable16TagTypeCS.icc"); 
}

Remarks

Inheritance Hierarchy

System.Object
   Leadtools.ColorConversion.IccTagTypeBase
      Leadtools.ColorConversion.IccLookupTable16TagType

Requirements

Target Platforms: Microsoft .NET Framework 2.0, Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

See Also