LEADTOOLS Color Conversion (Leadtools.ColorConversion assembly)

IccProfileExtended Class

Show in webframe
Example 





Members 
Contains all of the data for a complete ICC profile.
Object Model
Syntax
public class IccProfileExtended 
'Declaration
 
Public Class IccProfileExtended 
'Usage
 
Dim instance As IccProfileExtended

            

            
public ref class IccProfileExtended 
Remarks
Example
Copy Code  
Imports Leadtools
Imports Leadtools.ColorConversion

Public Function FillDateTimeTagType() As IccDateTimeTagType
   ' get the current system data
   Dim sysDateTime As DateTime = DateTime.Now
   ' create a new iccDateTime class
   Dim iccDateTime As New IccDateTime(CUShort(sysDateTime.Year), _
         CUShort(sysDateTime.Month), _
         CUShort(sysDateTime.Day), _
         CUShort(sysDateTime.Hour), _
         CUShort(sysDateTime.Minute), _
         CUShort(sysDateTime.Second))

   ' define the tag type
   Dim iccDateTimeTagType As New IccDateTimeTagType(iccDateTime)

   Return iccDateTimeTagType
End Function

Public Function FillIccXyzTagType() As IccXyzTagType
   ' define the array of XYZ numbers
   Dim data() As IccXyzNumber = {New IccXyzNumber(IccTools.FromDoubleTo2bFixed2bNumber(1.0), _
         IccTools.FromDoubleTo2bFixed2bNumber(2.0), _
         IccTools.FromDoubleTo2bFixed2bNumber(3.0))}

   ' define the tag type
   Dim xyzTagType As New IccXyzTagType(data)

   Return xyzTagType
End Function


Public Sub IccProfileExtendedExample()
   ' define the IccProfileExtended Class
   Dim iccProfile As New IccProfileExtended()

   ' define the IccHeader class
   Dim header As IccHeader = IccHeader.Empty

   ' filling the ICC header
   ' note that the Illuminant, ProfileSignature, and Version are filled 
   ' with the default values in the IccProfile.Empty property,
   ' and they shouldnt be changed unless the user knows what he is doing
   ' the rest of the fields are the user's responsibility
   ' except for the ProfileID which will be filled automatically upon the call
   ' for the method IccProfile.GenerateProfileId, but this method must be called at the
   ' end when the ICC Profile is completely prepared.
   ' Finally, the Size field will be filled automatically by the different ICC methods,
   ' and it shouldnt be changed unless the user knows what he is doing.
   header.CmmID = &H6170706C
   header.DeviceClass = IccProfileClassType.DeviceLinkClass
   header.ColorSpace = IccColorspaceType.LabData
   header.Pcs = IccColorspaceType.LabData
   header.ProfileSignature = &H61637370
   header.Platform = IccPlatformSignatureType.MacintoshSignature
   header.Flags = IccProfileFlags.None
   header.Manufacturer = &H46464549
   header.Model = 0
   header.Attributes = IccProfileMediaFlags.ColorMedia
   header.RenderingIntent = IccRenderingIntentType.AbsoluteColorimetric
   header.Creator = &H46464549

   ' set the system date/time as the date/time of the Icc Profile
   Dim sysDateTime As System.DateTime = System.DateTime.Now
   Dim iccDateTime As New IccDateTime(CUShort(sysDateTime.Year), _
         CUShort(sysDateTime.Month), _
         CUShort(sysDateTime.Day), _
         CUShort(sysDateTime.Hour), _
         CUShort(sysDateTime.Minute), _
         CUShort(sysDateTime.Second))

   header.DateTime = iccDateTime
   iccProfile.Header = header

   ' create all the tags you want
   ' 1- mediaBlackPointTag (needs XYZ tag type)
   Dim xyzTagType As IccXyzTagType = FillIccXyzTagType()

   ' then insert it into the profile
   iccProfile.AddTag(xyzTagType, IccTag.MediaBlackPointTag, IccTagTypeBase.XyzTypeSignature)

   ' 2- calibrationDateTimeTag
   Dim dateTimeTagType As IccDateTimeTagType = FillDateTimeTagType()
   iccProfile.AddTag(dateTimeTagType, IccTag.CalibrationDateTimeTag, IccTagTypeBase.DateTimeTypeSignature)

   ' 3- and so on...

   ' to get the tag type signature of any tag in the profile,
   Dim tagTypeSignature As Integer = iccProfile.GetTagTypeSignature(IccTag.MediaBlackPointTag)

   ' to delete one of the two tags
   xyzTagType = CType(iccProfile.DeleteTag(IccTag.MediaBlackPointTag), IccXyzTagType)

   ' to get the calibrationDateTimeTag
   dateTimeTagType = CType(iccProfile.GetTag(IccTag.CalibrationDateTimeTag), IccDateTimeTagType)

   ' at the end, generate the profileID. For the time being, it will be filled with 0's
   iccProfile.GenerateProfileId()

   ' finally generate the new Icc Profile by generating the Data Array
   ' and then generating the file
   iccProfile.UpdateDataArray()
   iccProfile.GenerateIccFile(Path.Combine(LEAD_VARS.ImagesDir, "IccProfileExtendedVB.icc"))
End Sub

Public NotInheritable Class LEAD_VARS
Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
using Leadtools;
using Leadtools.ColorConversion;

public IccDateTimeTagType FillDateTimeTagType()
{
   // get the current system data
   System.DateTime sysDateTime = System.DateTime.Now;
   // create a new iccDateTime class
   IccDateTime iccDateTime = new IccDateTime((ushort)sysDateTime.Year,
      (ushort)sysDateTime.Month,
      (ushort)sysDateTime.Day,
      (ushort)sysDateTime.Hour,
      (ushort)sysDateTime.Minute,
      (ushort)sysDateTime.Second);

   // define the tag type
   IccDateTimeTagType iccDateTimeTagType = new IccDateTimeTagType(iccDateTime);

   return iccDateTimeTagType;
}

public IccXyzTagType FillIccXyzTagType()
{
   // define the array of XYZ numbers
   IccXyzNumber[] data = new IccXyzNumber[1];
   data[0] = new IccXyzNumber(
      IccTools.FromDoubleTo2bFixed2bNumber(1.0),
      IccTools.FromDoubleTo2bFixed2bNumber(2.0),
      IccTools.FromDoubleTo2bFixed2bNumber(3.0));

   // define the tag type
   IccXyzTagType xyzTagType = new IccXyzTagType(data);

   return xyzTagType;
}


public void IccProfileExtendedExample()
{
   // define the IccProfileExtended Class
   IccProfileExtended iccProfile = new IccProfileExtended();

   // define the IccHeader class
   IccHeader header = IccHeader.Empty;

   // filling the ICC header
   // note that the Illuminant, ProfileSignature, and Version are filled 
   // with the default values in the IccProfile.Empty property,
   // and they shouldn't be changed unless the user knows what he is doing
   // the rest of the fields are the user's responsibility
   // except for the ProfileID which will be filled automatically upon the call
   // for the method IccProfile.GenerateProfileId, but this method must be called at the
   // end when the ICC Profile is completely prepared.
   // Finally, the Size field will be filled automatically by the different ICC methods,
   // and it shouldn't be changed unless the user knows what he is doing.
   header.CmmID = 0x6170706C;     // any CMM ID
   header.DeviceClass = IccProfileClassType.DeviceLinkClass;
   header.ColorSpace = IccColorspaceType.LabData;
   header.Pcs = IccColorspaceType.LabData;
   header.ProfileSignature = 0x61637370;   // any profile signature
   header.Platform = IccPlatformSignatureType.MacintoshSignature;
   header.Flags = IccProfileFlags.None;
   header.Manufacturer = 0x46464549;       // any manufacturer
   header.Model = 0x0;   // any model
   header.Attributes = IccProfileMediaFlags.ColorMedia;
   header.RenderingIntent = IccRenderingIntentType.AbsoluteColorimetric;
   header.Creator = 0x46464549;   // any creator

   // set the system date/time as the date/time of the Icc Profile
   System.DateTime sysDateTime = System.DateTime.Now;
   IccDateTime iccDateTime = new IccDateTime((ushort)sysDateTime.Year,
      (ushort)sysDateTime.Month,
      (ushort)sysDateTime.Day,
      (ushort)sysDateTime.Hour,
      (ushort)sysDateTime.Minute,
      (ushort)sysDateTime.Second);

   header.DateTime = iccDateTime;
   iccProfile.Header = header;
   // create all the tags you want
   // 1- mediaBlackPointTag (needs XYZ tag type)
   IccXyzTagType xyzTagType = FillIccXyzTagType();

   // then insert it into the profile
   iccProfile.AddTag(xyzTagType, IccTag.MediaBlackPointTag, IccTagTypeBase.XyzTypeSignature);

   // 2- calibrationDateTimeTag
   IccDateTimeTagType dateTimeTagType = FillDateTimeTagType();
   iccProfile.AddTag(dateTimeTagType, IccTag.CalibrationDateTimeTag, IccTagTypeBase.DateTimeTypeSignature);

   // 3- and so on...

   // to get the tag type signature of any tag in the profile,
   int tagTypeSignature = iccProfile.GetTagTypeSignature(IccTag.MediaBlackPointTag);

   // to delete one of the two tags
   xyzTagType = (IccXyzTagType) iccProfile.DeleteTag(IccTag.MediaBlackPointTag);

   // to get the calibrationDateTimeTag
   dateTimeTagType = (IccDateTimeTagType) iccProfile.GetTag(IccTag.CalibrationDateTimeTag);

   // at the end, generate the profileID. For the time being, it will be filled with 0's
   iccProfile.GenerateProfileId();

   // finally generate the new Icc Profile by updating the Data Array
   // and then generating the file
   iccProfile.UpdateDataArray();
   string IccfileName = Path.Combine(LEAD_VARS.ImagesDir, "IccProfileExtendedCS.icc");
   iccProfile.GenerateIccFile(IccfileName);
}

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

Target Platforms

See Also

Reference

IccProfileExtended 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
IccProfileSequenceDescriptionTagType Class
IccS15Fixed16ArrayTagType Class
IccSignatureTagType Class
IccTextTagType Class
IccU16Fixed16ArrayTagType Class
IccUint16ArrayTagType Class
IccUint32ArrayTagType Class
IccUint64ArrayTagType Class
IccUint8ArrayTagType Class
IccUnknownTagType Class
IccXyzTagType Class
IccTools Class

 

 


Products | Support | Contact Us | Copyright Notices
© 2006-2014 All Rights Reserved. LEAD Technologies, Inc.