Visual Basic (Declaration) | |
---|---|
Public Class IccProfileSequenceDescriptionTagType Inherits IccTagTypeBase |
Visual Basic (Usage) | Copy Code |
---|---|
Dim instance As IccProfileSequenceDescriptionTagType |
C# | |
---|---|
public class IccProfileSequenceDescriptionTagType : IccTagTypeBase |
C++/CLI | |
---|---|
public ref class IccProfileSequenceDescriptionTagType : public IccTagTypeBase |
This example method can be used in creating an "profileSequnceDescType" mentioned in the ICC.1:2004-10 specification.
Visual Basic | Copy 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 |
C# | Copy Code |
---|---|
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"; } |
SilverlightCSharp | Copy Code |
---|---|
SilverlightVB | Copy Code |
---|---|
- The signature for this tag type is IccTagTypeBase.ProfileSequenceDescTypeSignature.
System.Object
Leadtools.ColorConversion.IccTagTypeBase
Leadtools.ColorConversion.IccProfileSequenceDescriptionTagType
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
IccProfileSequenceDescriptionTagType MembersLeadtools.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