Contains the lut8Type tag type data.
Object Model
Syntax
Visual Basic (Declaration) | |
---|
Public Class IccLookupTable8TagType
Inherits IccTagTypeBase |
C++/CLI | |
---|
public ref class IccLookupTable8TagType : public IccTagTypeBase |
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.
Visual Basic | Copy Code |
---|
Public Sub IccLookupTable8TagTypeExample()
Dim iccProfile As New IccProfileExtended(LeadtoolsExamples.Common.ImagesPath.Path + "EmptyIcc.icc")
Dim inputTables(767) As Byte
Dim colorLUTTables(1535) As Byte
Dim outputTables(767) As Byte
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
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)
Dim iccLUT8TagType As New IccLookupTable8TagType(iccLUT8)
iccProfile.AddTag(iccLUT8TagType, IccTag.BToA1Tag, IccTagTypeBase.Lut8TypeSignature)
iccProfile.GenerateProfileId()
iccProfile.UpdateDataArray()
iccProfile.GenerateIccFile(LeadtoolsExamples.Common.ImagesPath.Path + "IccLookupTable8TagTypeVB.icc")
End Sub |
C# | Copy Code |
---|
public void IccLookupTable8TagTypeExample() { // load an Icc Profile string fileName = LeadtoolsExamples.Common.ImagesPath.Path + "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 = LeadtoolsExamples.Common.ImagesPath.Path + "IccLookupTable8TagTypeCS.icc"; iccProfile.GenerateIccFile(IccfileName); } |
Remarks
Inheritance Hierarchy
Requirements
Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family
See Also