LEADTOOLS Color Conversion (Leadtools.ColorConversion assembly)

IccLookupTable8TagType Class

Show in webframe
Example 





Members 
Contains the lut8Type tag type data.
Object Model
Syntax
public class IccLookupTable8TagType : IccTagTypeBase 
'Declaration
 
Public Class IccLookupTable8TagType 
   Inherits IccTagTypeBase
'Usage
 
Dim instance As IccLookupTable8TagType

            

            
public ref class IccLookupTable8TagType : public IccTagTypeBase 
Remarks
Example
Copy Code  
Imports Leadtools
Imports Leadtools.ColorConversion

Public Sub IccLookupTable8TagTypeExample()
   ' 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 (IntputChannels(3) * 256) bytes
   ' output table will be (OutputChannels(3) * 256) bytes
   ' clut table will be ((CLUTPoints(8) ^ InputChannels(3)) * OutputChannels(3)) bytes
   Dim inputTables(767) As Byte
   Dim colorLUTTables(1535) As Byte
   Dim outputTables(767) As Byte

   ' fill the tables
   Dim nCntr As Integer
   For nCntr = 0 To 255
      inputTables(nCntr) = CByte(nCntr)
      inputTables(nCntr + 256) = CByte(nCntr)
      inputTables(nCntr + 512) = CByte(nCntr)

      outputTables(nCntr) = CByte(nCntr)
      outputTables(nCntr + 256) = CByte(nCntr)
      outputTables(nCntr + 512) = CByte(nCntr)
   Next nCntr

   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) = CByte((Math.Min(Math.Max(0, rI * 256), 65535) / 256))
            nI = nI + 1
            colorLUTTables(nI) = CByte((Math.Min(Math.Max(0, gI * 256), 65535) / 256))
            nI = nI + 1
            colorLUTTables(nI) = CByte((Math.Min(Math.Max(0, bI * 256), 65535) / 256))
            nI = nI + 1
         Next bI
      Next gI
   Next rI

   ' create new IccLookupTable8 class
   Dim iccLUT8 As New IccLookupTable8(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 iccLUT8TagType As New IccLookupTable8TagType(iccLUT8)

   ' add the new tag to the ICC Profile
   iccProfile.AddTag(iccLUT8TagType, IccTag.BToA1Tag, IccTagTypeBase.Lut8TypeSignature)

   ' 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, "IccLookupTable8TagTypeVB.icc"))
End Sub

Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
using Leadtools;
using Leadtools.ColorConversion;

public void IccLookupTable8TagTypeExample()
{
   // load an Icc Profile
   string fileName = Path.Combine(LEAD_VARS.ImagesDir, "EmptyIcc.icc");
   IccProfileExtended iccProfile = new IccProfileExtended(fileName);

   // these arrays should be filled with the appropriate data
   // input table will be (IntputChannels(3) * 256) bytes
   // output table will be (OutputChannels(3) * 256) bytes
   // clut table will be ((CLUTPoints(8) ^ InputChannels(3)) * OutputChannels(3)) bytes
   byte[] inputTables = new byte[768];
   byte[] colorLUTTables = new byte[1536];
   byte[] outputTables = new byte[768];

   // fill the tables
   for (int nCntr = 0; nCntr < 256; nCntr++)
   {
      inputTables[nCntr] = (byte)nCntr;
      inputTables[nCntr + 256] = (byte)nCntr;
      inputTables[nCntr + 512] = (byte)nCntr;

      outputTables[nCntr] = (byte)nCntr;
      outputTables[nCntr + 256] = (byte)nCntr;
      outputTables[nCntr + 512] = (byte)nCntr;
   }

   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++] = (byte)(Math.Min(Math.Max(0, rI * 256), 65535) / 256);
            colorLUTTables[nI++] = (byte)(Math.Min(Math.Max(0, gI * 256), 65535) / 256);
            colorLUTTables[nI++] = (byte)(Math.Min(Math.Max(0, bI * 256), 65535) / 256);
         }
      }
   }

   // create new IccLookupTable8 class
   IccLookupTable8 iccLUT8 = new IccLookupTable8(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
   IccLookupTable8TagType iccLUT8TagType = new IccLookupTable8TagType(iccLUT8);

   // add the new tag to the ICC Profile
   iccProfile.AddTag(iccLUT8TagType, IccTag.BToA1Tag, IccTagTypeBase.Lut8TypeSignature);

   // 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 IccfileName = Path.Combine(LEAD_VARS.ImagesDir, "IccLookupTable8TagTypeCS.icc");
   iccProfile.GenerateIccFile(IccfileName);
}

static class LEAD_VARS
{
public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
Requirements

Target Platforms

See Also

Reference

IccLookupTable8TagType Members
Leadtools.ColorConversion Namespace
IccTagTypeBase Class
IccCurveTagType Class
IccDateTimeTagType Class
IccDataTagType Class
IccLookupTable16TagType 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-2014 All Rights Reserved. LEAD Technologies, Inc.