Contains all of the data for a complete ICC profile.
Object Model
Syntax
Visual Basic (Declaration) | |
---|
Public Class IccProfileExtended |
C# | |
---|
public class IccProfileExtended |
C++/CLI | |
---|
public ref class IccProfileExtended |
Example
Visual Basic | Copy Code |
---|
Public Function FillDateTimeTagType() As IccDateTimeTagType
Dim sysDateTime As DateTime = 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))
Dim iccDateTimeTagType As New IccDateTimeTagType(iccDateTime)
Return iccDateTimeTagType
End Function
Public Function FillIccXyzTagType() As IccXyzTagType
Dim data() As IccXyzNumber = {New IccXyzNumber(IccTools.FromDoubleTo2bFixed2bNumber(1.0), _
IccTools.FromDoubleTo2bFixed2bNumber(2.0), _
IccTools.FromDoubleTo2bFixed2bNumber(3.0))}
Dim xyzTagType As New IccXyzTagType(data)
Return xyzTagType
End Function
Public Sub IccProfileExtendedExample()
Dim iccProfile As New IccProfileExtended()
Dim header As IccHeader = IccHeader.Empty
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
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
Dim xyzTagType As IccXyzTagType = FillIccXyzTagType()
iccProfile.AddTag(xyzTagType, IccTag.MediaBlackPointTag, IccTagTypeBase.XyzTypeSignature)
Dim dateTimeTagType As IccDateTimeTagType = FillDateTimeTagType()
iccProfile.AddTag(dateTimeTagType, IccTag.CalibrationDateTimeTag, IccTagTypeBase.DateTimeTypeSignature)
Dim tagTypeSignature As Integer = iccProfile.GetTagTypeSignature(IccTag.MediaBlackPointTag)
xyzTagType = CType(iccProfile.DeleteTag(IccTag.MediaBlackPointTag), IccXyzTagType)
dateTimeTagType = CType(iccProfile.GetTag(IccTag.CalibrationDateTimeTag), IccDateTimeTagType)
iccProfile.GenerateProfileId()
iccProfile.UpdateDataArray()
iccProfile.GenerateIccFile(LeadtoolsExamples.Common.ImagesPath.Path + "IccProfileExtendedVB.icc")
End Sub |
C# | Copy Code |
---|
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 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 = 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 = LeadtoolsExamples.Common.ImagesPath.Path + "IccProfileExtendedCS.icc"; iccProfile.GenerateIccFile(IccfileName); } |
Remarks
Inheritance Hierarchy
Requirements
Target Platforms: Microsoft .NET Framework 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family
See Also