public class IccLookupTable8TagType : IccTagTypeBase public ref class IccLookupTable8TagType : public IccTagTypeBase class IccLookupTable8TagType(IccTagTypeBase): 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.
using Leadtools;using Leadtools.ColorConversion;public void IccLookupTable8TagTypeExample(){// load an Icc Profilestring fileName = Path.Combine(LEAD_VARS.ImagesDir, "ReadFromImageCS.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)) bytesbyte[] inputTables = new byte[768];byte[] colorLUTTables = new byte[1536];byte[] outputTables = new byte[768];// fill the tablesfor (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 classIccLookupTable8 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 typeIccLookupTable8TagType iccLUT8TagType = new IccLookupTable8TagType(iccLUT8);// add the new tag to the ICC ProfileiccProfile.AddTag(iccLUT8TagType, IccTag.BToA1Tag, IccTagTypeBase.Lut8TypeSignature);// generate the new profile idiccProfile.GenerateProfileId();// update the icc array with the new changesiccProfile.UpdateDataArray();// write the Icc Profile into a new filestring IccfileName = Path.Combine(LEAD_VARS.ImagesDir, "IccLookupTable8TagTypeCS.icc");iccProfile.GenerateIccFile(IccfileName);}static class LEAD_VARS{public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images";}
IccLookupTable8TagType Members
Leadtools.ColorConversion Namespace
IccParametricCurveTagType Class
IccResponseCurveSet16TagType Class
IccViewingConditionsTagType Class
IccMultiLocalizedUnicodeTagType Class
IccLookupTableAToBTagType Class
IccLookupTableBToATagType Class
IccProfileSequenceDescriptionTagType Class
IccS15Fixed16ArrayTagType Class
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
