LEADTOOLS Color Conversion (Leadtools.ColorConversion assembly)
LEAD Technologies, Inc

IccLookupTable16TagType Class

Example 





Members 
Contains the lut16Type tag type data. .NET support
Object Model
IccLookupTable16TagType ClassIccLookupTable16 Structure
Syntax
public class IccLookupTable16TagType : IccTagTypeBase 
'Declaration
 
Public Class IccLookupTable16TagType 
   Inherits IccTagTypeBase
'Usage
 
Dim instance As IccLookupTable16TagType
public sealed class IccLookupTable16TagType : IccTagTypeBase 
function Leadtools.ColorConversion.IccLookupTable16TagType()
public ref class IccLookupTable16TagType : public IccTagTypeBase 
Remarks
Example
Copy CodeCopy Code  
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
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";
}
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

IccLookupTable16TagType Members
Leadtools.ColorConversion Namespace
IccTagTypeBase Class
IccCurveTagType Class
IccDateTimeTagType Class
IccDataTagType Class
IccLookupTable8TagType Class
IccMeasurementTagType Class
IccNamedColor2TagType Class
IccParametricCurveTagType Class
IccResponseCurveSet16TagType Class
IccViewingConditionsTagType Class
IccChromaticityTagType Class
IccColorantTableTagType Class
IccMultiLocalizedUnicodeTagType Class
IccColorantOrderTagType Class
IccLookupTableAToBTagType Class
IccLookupTableBToATagType Class
IccProfileSequenceDescriptionTagType Class
IccS15Fixed16ArrayTagType Class
IccSignatureTagType Class
IccTextTagType Class
IccU16Fixed16ArrayTagType Class
IccUint16ArrayTagType Class
IccUint32ArrayTagType Class
IccUint64ArrayTagType Class
IccUint8ArrayTagType Class
IccXyzTagType Class
IccUnknownTagType Class
IccTools Class
IccProfileExtended Class

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.