←Select platform

IccLookupTable16TagType Class

Summary

Contains the lut16Type tag type data.

Syntax

C#
VB
C++
public class IccLookupTable16TagType : IccTagTypeBase 
  
Public Class IccLookupTable16TagType  
   Inherits Leadtools.Colorconversion.IccTagTypeBase 
public ref class IccLookupTable16TagType : public Leadtools.Colorconversion.IccTagTypeBase  

Remarks
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.

C#
VB
using Leadtools; 
using Leadtools.ColorConversion; 
 
public void IccLookupTable16TagTypeExample() 
{ 
   // load an Icc Profile 
   string IccfileName = Path.Combine(LEAD_VARS.ImagesDir, "EmptyIcc.icc"); 
   IccProfileExtended iccProfile = new IccProfileExtended(IccfileName); 
 
   // 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 
   string fileName = Path.Combine(LEAD_VARS.ImagesDir, "IccLookupTable16TagTypeCS.icc"); 
   iccProfile.GenerateIccFile(fileName); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; 
} 
Imports Leadtools 
Imports Leadtools.ColorConversion 
 
Public Sub IccLookupTable16TagTypeExample() 
   ' load an Icc Profile 
   Dim iccProfile As New IccProfileExtended(Path.Combine(LEAD_VARS.ImagesDir, "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(Path.Combine(LEAD_VARS.ImagesDir, "IccLookupTable16TagTypeVB.icc")) 
End Sub 
 
Public NotInheritable Class LEAD_VARS 
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" 
End Class 

Requirements

Target Platforms

Help Version 19.0.2017.10.27
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.ColorConversion Assembly