LEADTOOLS Color Conversion (Leadtools.ColorConversion assembly) Send comments on this topic. | Back to Introduction - All Topics | Help Version 17.0.3.29
IccCurveTagType Class
See Also  Members  
Leadtools.ColorConversion Namespace : IccCurveTagType Class



Contains the curveType tag type data.

Object Model

IccCurveTagType ClassIccCurve Structure

Syntax

Visual Basic (Declaration) 
Public Class IccCurveTagType 
   Inherits IccTagTypeBase
Visual Basic (Usage)Copy Code
Dim instance As IccCurveTagType
C# 
public class IccCurveTagType : IccTagTypeBase 
C++/CLI 
public ref class IccCurveTagType : public IccTagTypeBase 

Example

This example method can be used in creating an "curveType" mentioned in the ICC.1:2004-10 specification

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

      ' preparing curve data, it consists of domain and range values
      ' if we have 1 value, it should be in the u8Fixed8Number format,
      ' and if we have more than 1 value, their type should be uInt16Number (ushort),
      ' in this example we will use more than 1 value, look at the CS example
      ' 1 value curve data example
      ' for more information about domain and range values refere to 
      ' ICC.1:2004-10 specification page 39.
      Dim myDoubleValue As Double = 1.5
      Dim curveData() As UShort = {1, 2, 3}

      ' in case of 1 value, the value should be in the u8Fixed8Number format, you can accomplish this by
      Dim dummyData As UShort = CType(IccTools.FromDoubleToU8Fixed8Number(myDoubleValue), UShort)

      ' to read the value back from the curve data use the following function
      myDoubleValue = IccTools.FromU8Fixed8NumberToDouble(dummyData)

      ' create the new iccCurveType
      Dim iccCurve As New IccCurve(curveData)

      ' define the tag type
      Dim iccCurveTagType As New IccCurveTagType(iccCurve)

      ' insert the new tag type into the Icc Profile
      iccProfile.AddTag(iccCurveTagType, IccTag.GrayTRCTag, IccTagTypeBase.CurveTypeSignature)

      ' 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, "IccCurveTagTypeVB.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 void IccCurveTagTypeExample()
   {
      // load an Icc Profile
      string fileName = Path.Combine(LEAD_VARS.ImagesDir, "EmptyIcc.icc");
      IccProfileExtended iccProfile = new IccProfileExtended(fileName);

      // preparing curve data, it consists of domain and range values
      // if we have 1 value, it should be in the u8Fixed8Number format,
      // and if we have more than 1 value, their type should be uInt16Number (ushort),
      // in this example we will use 1 value, look at the VB example for more
      // than 1 value curve data example
      // for more information about domain and range values refere to 
      // ICC.1:2004-10 specification page 39.
      double myDoubleValue = 1.5;
      ushort[] curveData = new ushort[1];
      curveData[0] = IccTools.FromDoubleToU8Fixed8Number(myDoubleValue);

      // to read the value back from the curve data use the following function
      myDoubleValue = IccTools.FromU8Fixed8NumberToDouble(curveData[0]);

      // create the new iccCurveType
      IccCurve iccCurve = new IccCurve(curveData);

      // define the tag type
      IccCurveTagType iccCurveTagType = new IccCurveTagType(iccCurve);

      // add the new tag to the ICC Profile
      iccProfile.AddTag(iccCurveTagType, IccTag.GrayTRCTag, IccTagTypeBase.CurveTypeSignature);

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

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

Remarks

Inheritance Hierarchy

System.Object
   Leadtools.ColorConversion.IccTagTypeBase
      Leadtools.ColorConversion.IccCurveTagType

Requirements

Target Platforms: Silverlight 3.0, Windows XP, Windows Server 2003 family, Windows Server 2008 family, Windows Vista, Windows 7, MAC OS/X (Intel Only)

See Also