LEADTOOLS Color Conversion (Leadtools.ColorConversion assembly)
LEAD Technologies, Inc

IccProfileSequenceDescriptionTagType Class

Example 





Members 
Contains the profileSequenceDescriptionType tag type data. .NET support
Object Model
IccProfileSequenceDescriptionTagType ClassIccProfileSequenceDescription Structure
Syntax
public class IccProfileSequenceDescriptionTagType : IccTagTypeBase 
'Declaration
 
Public Class IccProfileSequenceDescriptionTagType 
   Inherits IccTagTypeBase
'Usage
 
Dim instance As IccProfileSequenceDescriptionTagType
public sealed class IccProfileSequenceDescriptionTagType : IccTagTypeBase 
function Leadtools.ColorConversion.IccProfileSequenceDescriptionTagType()
public ref class IccProfileSequenceDescriptionTagType : public IccTagTypeBase 
Remarks
Example
Copy CodeCopy Code  
Public Function FillIccMultiLocalizedUnicodeTagType() As IccMultiLocalizedUnicodeTagType
      Dim nameLanguageCode As UShort = CUShort(AscW("e"c))
      nameLanguageCode <<= 8
      nameLanguageCode = nameLanguageCode Or CUShort(&HFF)
      nameLanguageCode = nameLanguageCode And CUShort((&HFF00 Or AscW("n"c)))
      Dim nameCountryCode As UShort = CUShort(AscW("c"c))
      nameCountryCode <<= 8
      nameCountryCode = nameCountryCode Or CUShort(&HFF)
      nameCountryCode = nameCountryCode And CUShort(&HFF00 Or AscW("a"c))

      Dim names() As String = {"first name record", "second name record"}

      Dim nameRecord(1) As IccNameRecord

      nameRecord(0) = New IccNameRecord(nameLanguageCode, nameCountryCode, names(0).Length * 2, 16 + (2 * 12))
      nameRecord(1) = New IccNameRecord(nameLanguageCode, nameCountryCode, names(1).Length * 2, ((16 + (2 * 12)) + (names(0).Length * 2)))

      Dim firstName() As Char = names(0).ToCharArray()
      Dim secondName() As Char = names(1).ToCharArray()

      Dim unicodeChars(names(0).Length + names(1).Length) As UShort
      Dim nCntr As Integer = 0
      Dim nX As Integer = 0

      While (nX < names(0).Length)
         unicodeChars(nCntr) = CUShort(AscW(firstName(nX)))
         nX += 1
         nCntr += 1
      End While

      nX = 0
      While (nX < names(1).Length)
         unicodeChars(nCntr) = CUShort(AscW(secondName(nX)))
         nX += 1
         nCntr += 1
      End While

      Dim iccMultiLocalized As New IccMultiLocalizedUnicode(12, nameRecord, unicodeChars)
      Dim iccMultiLocalizedTagType As New IccMultiLocalizedUnicodeTagType(iccMultiLocalized)

      Return iccMultiLocalizedTagType
   End Function


   Public Sub IccProfileSequenceDescriptionTagTypeExample()
      ' load an Icc Profile
      Dim iccProfile As New IccProfileExtended(Path.Combine(LEAD_VARS.ImagesDir, "EmptyIcc.icc"))

      ' define the device attributes must be 8 bytes
      Dim deviceAttribs() As Byte = {0, 0, 0, 0, 0, 0, 0, 0}

      ' define the device manufacturer and model descriptions
      Dim devManufacturerDesc As IccMultiLocalizedUnicodeTagType = FillIccMultiLocalizedUnicodeTagType()
      Dim devModelDesc As IccMultiLocalizedUnicodeTagType = FillIccMultiLocalizedUnicodeTagType()

      ' if a tag type is used inside another tag type, it should be converted
      ' into BigIndian notation first. And that can be done by calling the 
      ' IccProfile.CreateICCTagData() method
      devManufacturerDesc = DirectCast(IccTools.CreateTagType(devManufacturerDesc, IccTagTypeBase.MultiLocalizedUnicodeTypeSignature), IccMultiLocalizedUnicodeTagType)
      devModelDesc = DirectCast(IccTools.CreateTagType(devModelDesc, IccTagTypeBase.MultiLocalizedUnicodeTypeSignature), IccMultiLocalizedUnicodeTagType)

      ' define the 1 profile descriptions
      Dim profileDescription() As IccProfileDescription = {New IccProfileDescription(&H46464549, _
            &H0, _
            deviceAttribs, _
            IccTechnologySignatureType.None, _
            devManufacturerDesc, _
            devModelDesc)}

      ' create the IccProfileSequenceDescription class
      Dim profileSeqDesc As New IccProfileSequenceDescription(profileDescription)

      ' define the tag type
      Dim profileSeqDescTagType As New IccProfileSequenceDescriptionTagType(profileSeqDesc)

      ' add the new tag to the ICC Profile
      iccProfile.AddTag(profileSeqDescTagType, IccTag.ProfileSequenceDescTag, IccTagTypeBase.ProfileSequenceDescTypeSignature)

      ' 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, "IccProfileSequenceDescriptionTagTypeVB.icc"))
   End Sub

Public NotInheritable Class LEAD_VARS
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
public IccMultiLocalizedUnicodeTagType FillIccMultiLocalizedUnicodeTagType()
   {
      ushort nameLanguageCode = 'e';
      nameLanguageCode <<= 8;
      nameLanguageCode |= 0x00FF;
      nameLanguageCode &= 0xFF00 | 'n';
      ushort nameCountryCode = 'c';
      nameCountryCode <<= 8;
      nameCountryCode |= 0x00FF;
      nameCountryCode &= 0xFF00 | 'a';

      string[] names = new string[2];
      names[0] = "first name record";
      names[1] = "second name record";

      IccNameRecord[] nameRecord = new IccNameRecord[2];

      nameRecord[0] = new IccNameRecord(nameLanguageCode, nameCountryCode, names[0].Length * 2, 16 + (2 * 12));
      nameRecord[1] = new IccNameRecord(nameLanguageCode, nameCountryCode, names[1].Length * 2, ((16 + (2 * 12)) + (names[0].Length * 2)));

      char[] firstName = new char[names[0].Length];
      firstName = names[0].ToCharArray();

      char[] secondName = new char[names[1].Length];
      secondName = names[1].ToCharArray();

      ushort[] unicodeChars = new ushort[names[0].Length + names[1].Length];
      int nCntr = 0;
      int nX = 0;
      while (nX < names[0].Length)
      {
         unicodeChars[nCntr] = firstName[nX];
         nX++;
         nCntr++;
      }
      nX = 0;
      while (nX < names[1].Length)
      {
         unicodeChars[nCntr] = secondName[nX];
         nX++;
         nCntr++;
      }

      IccMultiLocalizedUnicode iccMultiLocalized = new IccMultiLocalizedUnicode(12, nameRecord, unicodeChars);
      IccMultiLocalizedUnicodeTagType iccMultiLocalizedTagType = new IccMultiLocalizedUnicodeTagType(iccMultiLocalized);

      return iccMultiLocalizedTagType;
   }


   public void IccProfileSequenceDescriptionTagTypeExample()
   {
      // load an Icc Profile
      string fileName = Path.Combine(LEAD_VARS.ImagesDir, "EmptyIcc.icc");
      IccProfileExtended iccProfile = new IccProfileExtended(fileName);

      // define the device attributes must be 8 bytes
      byte[] deviceAttribs = new byte[8] { 0, 0, 0, 0, 0, 0, 0, 0 };

      // define the device manufacturer and model descriptions
      IccMultiLocalizedUnicodeTagType devManufacturerDesc = FillIccMultiLocalizedUnicodeTagType();
      IccMultiLocalizedUnicodeTagType devModelDesc = FillIccMultiLocalizedUnicodeTagType();

      // if a tag type is used inside another tag type, it should be converted
      // into BigIndian notation first. And that can be done by calling the 
      // IccProfile.CreateICCTagData() method
      devManufacturerDesc = (IccMultiLocalizedUnicodeTagType)IccTools.CreateTagType(devManufacturerDesc, IccTagTypeBase.MultiLocalizedUnicodeTypeSignature);
      devModelDesc = (IccMultiLocalizedUnicodeTagType)IccTools.CreateTagType(devModelDesc, IccTagTypeBase.MultiLocalizedUnicodeTypeSignature);

      // define the 1 profile descriptions
      IccProfileDescription[] profileDescription = new IccProfileDescription[1];
      profileDescription[0] = new IccProfileDescription(
         0x46464549,
         0x0,
         deviceAttribs,
         IccTechnologySignatureType.None,
         devManufacturerDesc,
         devModelDesc);

      // create the IccProfileSequenceDescription class
      IccProfileSequenceDescription profileSeqDesc = new IccProfileSequenceDescription(profileDescription);

      // define the tag type
      IccProfileSequenceDescriptionTagType profileSeqDescTagType = new IccProfileSequenceDescriptionTagType(profileSeqDesc);

      // add the new tag to the ICC Profile
      iccProfile.AddTag(profileSeqDescTagType, IccTag.ProfileSequenceDescTag, IccTagTypeBase.ProfileSequenceDescTypeSignature);

      // 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, "IccProfileSequenceDescriptionTagTypeCS.icc");
      iccProfile.GenerateIccFile(IccfileName);
   }

static class LEAD_VARS
{
   public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images";
}
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

IccProfileSequenceDescriptionTagType Members
Leadtools.ColorConversion Namespace
IccTagTypeBase Class
IccCurveTagType Class
IccDateTimeTagType Class
IccDataTagType Class
IccLookupTable16TagType Class
IccLookupTable8TagType Class
IccMeasurementTagType Class
IccNamedColor2TagType Class
IccParametricCurveTagType Class
IccResponseCurveSet16TagType Class
IccViewingConditionsTagType Class
IccChromaticityTagType Class
IccColorantTableTagType Class
IccMultiLocalizedUnicodeTagType Class
IccColorantOrderTagType Class
IccLookupTableAToBTagType Class
IccLookupTableBToATagType 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

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.