public struct IccLookupTable8
public value class IccLookupTable8 : public System.ValueType
class IccLookupTable8:
using Leadtools;
using Leadtools.ColorConversion;
public void IccLookupTable8TagTypeExample()
{
// load an Icc Profile
string 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)) 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";
}
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