←Select platform

IccResponseCurveSet16TagType Class

Summary

Contains the responseCurveSet1Type tag type data.

Syntax

C#
VB
C++
public class IccResponseCurveSet16TagType : IccTagTypeBase 
  
Public Class IccResponseCurveSet16TagType  
   Inherits Leadtools.Colorconversion.IccTagTypeBase 
public ref class IccResponseCurveSet16TagType : public Leadtools.Colorconversion.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#
VB
using Leadtools; 
using Leadtools.ColorConversion; 
 
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"; 
} 
Imports Leadtools 
Imports Leadtools.ColorConversion 
 
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 

Requirements

Target Platforms

Help Version 19.0.2017.10.27
Products | Support | Contact Us | Copyright Notices
© 1991-2017 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.ColorConversion Assembly