Visual Basic (Declaration) | |
---|---|
Public Class IccLookupTable8TagType Inherits IccTagTypeBase |
Visual Basic (Usage) | Copy Code |
---|---|
Dim instance As IccLookupTable8TagType |
C# | |
---|---|
public class IccLookupTable8TagType : IccTagTypeBase |
C++/CLI | |
---|---|
public ref class IccLookupTable8TagType : public 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.
Visual Basic | Copy Code |
---|---|
Public Sub IccLookupTable8TagTypeExample() ' load an Icc Profile Dim iccProfile As New IccProfileExtended(Path.Combine(LEAD_VARS.ImagesDir, "EmptyIcc.icc")) ' 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 Dim inputTables(767) As Byte Dim colorLUTTables(1535) As Byte Dim outputTables(767) As Byte ' fill the tables 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 ' create new IccLookupTable8 class 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) ' define the tag type Dim iccLUT8TagType As 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 iccProfile.GenerateIccFile(Path.Combine(LEAD_VARS.ImagesDir, "IccLookupTable8TagTypeVB.icc")) End Sub Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class |
C# | Copy Code |
---|---|
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:\Users\Public\Documents\LEADTOOLS Images"; } |
SilverlightCSharp | Copy Code |
---|---|
SilverlightVB | Copy Code |
---|---|
- The signature for this tag type is IccTagTypeBase.Lut8TypeSignature.
System.Object
Leadtools.ColorConversion.IccTagTypeBase
Leadtools.ColorConversion.IccLookupTable8TagType
Target Platforms: Silverlight 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7, MAC OS/X (Intel Only)
Reference
IccLookupTable8TagType MembersLeadtools.ColorConversion Namespace
IccTagTypeBase Class
IccCurveTagType Class
IccDateTimeTagType Class
IccDataTagType Class
IccLookupTable16TagType Class
IccMeasurementTagType Class
IccNamedColor2TagType Class
IccParametricCurveTagType Class
IccResponseCurveSet16TagType Class
IccViewingConditionsTagType Class
IccChromaticityTagType Class
IccColorantTableTagType Class
IccMultiLocalizedUnicodeTagType Class
IccColorantOrderTagType Class
IccLookupTableAToBTagType Class
IccLookupTableBToATagType Class
IccProfileSequenceDescriptionTagType Class
IccS15Fixed16ArrayTagType Class
IccSignatureTagType Class
IccTextTagType Class
IccU16Fixed16ArrayTagType Class
IccUint16ArrayTagType Class
IccUint32ArrayTagType Class
IccUint64ArrayTagType Class
IccUint8ArrayTagType Class
IccXyzTagType Class
IccUnknownTagType Class
IccTools Class
IccProfileExtended Class