public struct IccLookupTable16
public value class IccLookupTable16 : public System.ValueType
class IccLookupTable16:
using Leadtools;
using Leadtools.ColorConversion;
using Leadtools.Codecs;
public string outputIccFile = Path.Combine(LEAD_VARS.ImagesDir, "ColorConversion", "GetIccProfileTag", "IccLookupTable16TagType.icc");
public void IccLookupTable16TagTypeExample()
{
// Load an ICC profile
string IccfileName = Path.Combine(LEAD_VARS.ImagesDir, "ColorConversion", "InputProfile.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 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
iccProfile.GenerateIccFile(outputIccFile);
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\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