85{
86 if (!pProfile)
87 {
89 }
90
95 {
97 }
98
101
103
105
107 return result;
108 }
109
110 result = dev2Lab.Begin();
112 return result;
113 }
114
117 return result;
118 }
119
122 return result;
123 }
124
125 result = Lab2Dev2Lab.Begin();
127 return result;
128 }
129
132
134 int ndim1 = ndim+1;
135
136
137 if (!nGran)
138 {
140 if (!pTag || ndim==3)
141 {
142 nGran = 33;
143 }
144 else {
146 if (pClut)
148 else
149 nGran = 33;
150 }
151 }
152
153 int i, j;
156
159
160
161 for (j = 0; j < ndim1; j++) {
162 steps[j] = nstart;
163 }
164
165
166 while (steps[0] == nstart) {
167 for (j = 0; j < ndim; j++) {
168 sPixel[j] =
icMin(steps[j + 1], 1.0);
169 }
170
171
172 steps[ndim] += stepsize;
173
174
175 for (i = ndim; i > 0; i--) {
176 if (steps[i] > nEnd) {
177 steps[i] = nstart;
178 steps[i - 1] += stepsize;
179 }
180 else {
181 break;
182 }
183 }
184
185 dev2Lab.Apply(devPcs, sPixel);
186 Lab2Dev2Lab.Apply(roundPcs1, devPcs);
187 Lab2Dev2Lab.Apply(roundPcs2, roundPcs1);
188
192
193 Compare(sPixel, devPcs, roundPcs1, roundPcs2);
194 }
195
196 delete[] steps;
197
199}
@ icSigDisplayClass
Definition icProfileHeader.h:953
@ icSigOutputClass
Definition icProfileHeader.h:954
@ icSigInputClass
Definition icProfileHeader.h:952
@ icSigColorSpaceClass
Definition icProfileHeader.h:957
@ icSigLabData
Definition icProfileHeader.h:847
#define icSigUnknownData
Definition icProfileHeader.h:903
@ icSigAToB0Tag
Definition icProfileHeader.h:342
@ icRelativeColorimetric
Definition icProfileHeader.h:1144
@ icAbsoluteColorimetric
Definition icProfileHeader.h:1147
@ icXformLutColorimetric
Definition IccCmm.h:135
icStatusCMM
CMM return status values.
Definition IccCmm.h:90
@ icCmmStatInvalidProfile
Definition IccCmm.h:95
@ icCmmStatCantOpenProfile
Definition IccCmm.h:93
@ icCmmStatOk
Definition IccCmm.h:92
ICCPROFLIB_API icFloatNumber icMin(icFloatNumber v1, icFloatNumber v2)
Definition IccUtil.cpp:898
ICCPROFLIB_API icUInt32Number icGetSpaceSamples(icColorSpaceSignature sig)
Definition IccUtil.cpp:1303
ICCPROFLIB_API void icLabFromPcs(icFloatNumber *Lab)
Here are some conversion routines to convert to regular Lab encoding.
Definition IccUtil.cpp:919
Definition IccTagLut.h:326
icUInt8Number GridPoints() const
Definition IccTagLut.h:349
CIccCLUT * GetCLUT() const
Definition IccTagLut.h:469
Definition IccTagLut.h:502
virtual void Compare(icFloatNumber *pPixel, icFloatNumber *deviceLab, icFloatNumber *destLab1, icFloatNumber *destLab2)=0