←Select platform

IccResponseCurveSet16TagType Class

Summary
Contains the responseCurveSet1Type tag type data.
Syntax
C#
C++/CLI
Python
public class IccResponseCurveSet16TagType : IccTagTypeBase 
public ref class IccResponseCurveSet16TagType : public IccTagTypeBase  
class IccResponseCurveSet16TagType(IccTagTypeBase): 
Remarks
  • The signature for this tag type is IccTagTypeBase.ResponseCurveSet16TypeSignature.
  • The purpose of this tag type is to provide a mechanism to relate physical colorant amounts with the normalized device codes produced by lut8Type, lut16Type, lutAToBType or lutBToAType tags so that corrections can be made for variation in the device without having to produce a new profile.
Example

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

C#
using Leadtools; 
using Leadtools.ColorConversion; 
 
 
public void IccResponseCurveSet16TagTypeExample() 
{ 
   // load an Icc Profile 
   string fileName = Path.Combine(LEAD_VARS.ImagesDir, "ReadFromImageCS.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:\LEADTOOLS22\Resources\Images"; 
} 
Requirements

Target Platforms

Help Version 22.0.2023.3.31
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.ColorConversion Assembly

Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.