←Select platform

IccLookupTable8TagType Class

Summary
Contains the lut8Type tag type data.
Syntax
C#
C++
public class IccLookupTable8TagType : IccTagTypeBase 
vb[VB Syntax] 
  
Public Class IccLookupTable8TagType  
   Inherits IccTagTypeBase 
public ref class IccLookupTable8TagType : public IccTagTypeBase  
Remarks
Example

This example method can be used in creating an "lut8Type" 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 = 33, Input Entries = 256, Output Entries = 256.

C#
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:\LEADTOOLS22\Resources\Images"; 
} 
Requirements

Target Platforms

Help Version 22.0.2022.4.4
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2022 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.ColorConversion Assembly

Products | Support | Contact Us | Intellectual Property Notices
© 1991-2022 LEAD Technologies, Inc. All Rights Reserved.