LEADTOOLS Color Conversion (Leadtools.ColorConversion assembly)
LEAD Technologies, Inc

IccResponseCurveSet16TagType Class

Example 





Members 
Contains the responseCurveSet1Type tag type data. .NET support
Object Model
IccResponseCurveSet16TagType ClassIccResponseCurve Structure
Syntax
public class IccResponseCurveSet16TagType : IccTagTypeBase 
'Declaration
 
Public Class IccResponseCurveSet16TagType 
   Inherits IccTagTypeBase
'Usage
 
Dim instance As IccResponseCurveSet16TagType
public sealed class IccResponseCurveSet16TagType : IccTagTypeBase 
function Leadtools.ColorConversion.IccResponseCurveSet16TagType()
public ref class IccResponseCurveSet16TagType : public IccTagTypeBase 
Remarks
Example
Copy CodeCopy Code  
Public Sub IccResponseCurveSet16TagTypeExample()
      ' load an Icc Profile
      Dim iccProfile As New IccProfileExtended(Path.Combine(LEAD_VARS.ImagesDir, "EmptyIcc.icc"))

      ' define the number of measurement types and number of channels
      Dim numOfMeasTypes As Integer = 1
      Dim numOfChannels As UShort = 1

      ' define the number of measurements for each channel
      Dim measurementCount(numOfChannels - 1) As Integer
      measurementCount(0) = 0

      ' define the number-of-channels measurements of patch 
      ' with the maximum colorant value. PCS values shall be relative colorimetric
      Dim measurementOfPatch(numOfChannels - 1) As IccXyzNumber
      measurementOfPatch(0) = New IccXyzNumber(IccTools.FromDoubleTo2bFixed2bNumber(0.0), _
         IccTools.FromDoubleTo2bFixed2bNumber(1.0), _
         IccTools.FromDoubleTo2bFixed2bNumber(2.0))

      ' define number-of-channels response arrays
      Dim respArrays(numOfChannels - 1) As IccResponseArrays
      respArrays(0) = New IccResponseArrays()

      ReDim respArrays(0).ResponseNumber(numOfMeasTypes - 1)
      respArrays(0).ResponseNumber(0) = New IccResponse16Number(0, 0)

      ' define the curve structures
      Dim curveStructure(numOfMeasTypes - 1) As IccCurveStructure
      curveStructure(0) = New IccCurveStructure(IccMeasurementSignatureType.DN, measurementCount, measurementOfPatch, respArrays)

      ' define an array that will contain the offsets of the response data
      ' starting from the beginning from the tag type
      Dim responseDataOffsets(numOfMeasTypes - 1) As Integer
      responseDataOffsets(0) = 0

      ' create the IccResponseCurve class
      Dim responseCurve As New IccResponseCurve(numOfChannels, responseDataOffsets, curveStructure)

      ' define the tag type
      Dim responseCurveSet16TagType As New IccResponseCurveSet16TagType(responseCurve)

      ' add the new tag to the ICC Profile
      iccProfile.AddTag(responseCurveSet16TagType, IccTag.OutputResponseTag, IccTagTypeBase.ResponseCurveSet16TypeSignature)

      ' 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, "IccResponseCurveSet16TagTypeVB.icc"))
   End Sub

Public NotInheritable Class LEAD_VARS
   Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images"
End Class
public void IccResponseCurveSet16TagTypeExample()
   {
      // load an Icc Profile
      string fileName = Path.Combine(LEAD_VARS.ImagesDir, "EmptyIcc.icc");
      IccProfileExtended iccProfile = new IccProfileExtended(fileName);

      // define the number of measurement types and number of channels
      int numOfMeasTypes = 1;
      ushort numOfChannels = 1;

      // define the number of measurements for each channel
      int[] measurementCount = new int[numOfChannels];
      measurementCount[0] = 0;

      // define the number-of-channels measurements of patch 
      // with the maximum colorant value. PCS values shall be relative colorimetric
      IccXyzNumber[] measurementOfPatch = new IccXyzNumber[numOfChannels];
      measurementOfPatch[0] = new IccXyzNumber(
         IccTools.FromDoubleTo2bFixed2bNumber(0.0),
         IccTools.FromDoubleTo2bFixed2bNumber(1.0),
         IccTools.FromDoubleTo2bFixed2bNumber(2.0));

      // define number-of-channels response arrays
      IccResponseArrays[] respArrays = new IccResponseArrays[numOfChannels];
      respArrays[0] = new IccResponseArrays();

      respArrays[0].ResponseNumber = new IccResponse16Number[numOfMeasTypes];
      respArrays[0].ResponseNumber[0] = new IccResponse16Number(0, 0);

      // define the curve structures
      IccCurveStructure[] curveStructure = new IccCurveStructure[numOfMeasTypes];
      curveStructure[0] = new IccCurveStructure(IccMeasurementSignatureType.DN, measurementCount, measurementOfPatch, respArrays);

      // define an array that will contain the offsets of the response data
      // starting from the beginning from the tag type
      int[] responseDataOffsets = new int[numOfMeasTypes];
      responseDataOffsets[0] = 0;

      // create the IccResponseCurve class
      IccResponseCurve responseCurve = new IccResponseCurve(numOfChannels, responseDataOffsets, curveStructure);

      // define the tag type
      IccResponseCurveSet16TagType responseCurveSet16TagType = new IccResponseCurveSet16TagType(responseCurve);

      // add the new tag to the ICC Profile
      iccProfile.AddTag(responseCurveSet16TagType, IccTag.OutputResponseTag, IccTagTypeBase.ResponseCurveSet16TypeSignature);

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

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

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

IccResponseCurveSet16TagType Members
Leadtools.ColorConversion Namespace
IccTagTypeBase Class
IccCurveTagType Class
IccDateTimeTagType Class
IccDataTagType Class
IccLookupTable16TagType Class
IccLookupTable8TagType Class
IccMeasurementTagType Class
IccNamedColor2TagType Class
IccParametricCurveTagType 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
IccXyzTagType Class
IccUnknownTagType Class
IccTools Class
IccProfileExtended Class

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.