Contains the profileSequenceDescriptionType tag type data.
public class IccProfileSequenceDescriptionTagType : IccTagTypeBase
Public Class IccProfileSequenceDescriptionTagType
Inherits Leadtools.Colorconversion.IccTagTypeBase
public ref class IccProfileSequenceDescriptionTagType : public Leadtools.Colorconversion.IccTagTypeBase
This example method can be used in creating an "profileSequnceDescType" mentioned in the ICC.1:2004-10 specification.
using Leadtools;
using Leadtools.ColorConversion;
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";
}
Imports Leadtools
Imports Leadtools.ColorConversion
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
IccProfileSequenceDescriptionTagType Members
Leadtools.ColorConversion Namespace
IccParametricCurveTagType Class
IccResponseCurveSet16TagType Class
IccViewingConditionsTagType Class
IccMultiLocalizedUnicodeTagType Class
IccLookupTableAToBTagType Class
IccLookupTableBToATagType Class
IccS15Fixed16ArrayTagType Class
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.