150{
151 if (argc<=1) {
152 printf("Usage: iccRoundTrip profile {rendering_intent=1 {use_mpe=0}}\n");
154 printf(" where rendering_intent is (0=perceptual, 1=relative, 2=saturation, 3=absolute)\n");
155 return -1;
156 }
157
159 int nUseMPE = 0;
160
161 if (argc>2) {
163 if (argc>3) {
164 nUseMPE = atoi(argv[3]);
165 }
166 }
167
169
171
173 printf("Unable to perform round trip on '%s'\n", argv[1]);
174 return -1;
175 }
176
178
180
182 printf("Unable to perform PRMG analysis on '%s'\n", argv[1]);
183 return -1;
184 }
185
187
188 printf("Profile: '%s'\n", argv[1]);
190 printf(
"Specified Gamut: %s\n", prmg.
m_bPrmgImplied ?
"Perceptual Reference Medium Gamut" :
"Not Specified");
191
192 printf("\nRound Trip 1\n");
193 printf( "------------\n");
197
199
200 printf("\nRound Trip 2\n");
201 printf( "------------\n");
205
207
209 printf("\nPRMG Interoperability - Round Trip Results\n");
210 printf( "------------------------------------------------------\n");
211
212 printf(
"DE <= 1.0 (%8u): %5.1f%%\n", prmg.
m_nDE1, (
float)prmg.
m_nDE1/(
float)prmg.
m_nTotal*100.0);
213 printf(
"DE <= 2.0 (%8u): %5.1f%%\n", prmg.
m_nDE2, (
float)prmg.
m_nDE2/(
float)prmg.
m_nTotal*100.0);
214 printf(
"DE <= 3.0 (%8u): %5.1f%%\n", prmg.
m_nDE3, (
float)prmg.
m_nDE3/(
float)prmg.
m_nTotal*100.0);
215 printf(
"DE <= 5.0 (%8u): %5.1f%%\n", prmg.
m_nDE5, (
float)prmg.
m_nDE5/(
float)prmg.
m_nTotal*100.0);
217 printf(
"Total (%8u)\n", prmg.
m_nTotal);
218 }
219 return 0;
220}
icRenderingIntent
Definition icProfileHeader.h:1142
@ icRelativeColorimetric
Definition icProfileHeader.h:1144
#define ICCPROFLIBVER
Definition IccProfLibVer.h:2
@ icInterpLinear
Definition IccCmm.h:114
icStatusCMM
CMM return status values.
Definition IccCmm.h:90
@ icCmmStatOk
Definition IccCmm.h:92
#define ICFLOATFMT
Definition IccDefs.h:107
#define ICFLOATSFX
Definition IccDefs.h:106
const icChar * GetRenderingIntentName(icRenderingIntent val, bool bIsV5=false)
Definition IccUtil.cpp:2091
icStatusCMM ICCPROFLIB_API EvaluateProfile(CIccProfile *pProfile, icUInt8Number nGran=0, icRenderingIntent nIntent=icUnknownIntent, icXformInterp nInterp=icInterpLinear, bool buseMpeTags=true)
Definition IccEval.cpp:82
icUInt32Number m_nTotal
Definition IccPrmg.h:96
icUInt32Number m_nDE2
Definition IccPrmg.h:96
icUInt32Number m_nDE1
Definition IccPrmg.h:96
icUInt32Number m_nDE3
Definition IccPrmg.h:96
icUInt32Number m_nDE5
Definition IccPrmg.h:96
bool m_bPrmgImplied
Definition IccPrmg.h:98
icUInt32Number m_nDE10
Definition IccPrmg.h:96
icStatusCMM EvaluateProfile(CIccProfile *pProfile, icRenderingIntent nIntent=icUnknownIntent, icXformInterp nInterp=icInterpLinear, bool buseMpeTags=true)
Definition IccPrmg.cpp:203
Definition iccRoundTrip.cpp:80
icFloatNumber maxLab2[3]
Definition iccRoundTrip.cpp:93
icFloatNumber minDE2
Definition iccRoundTrip.cpp:89
icFloatNumber maxLab1[3]
Definition iccRoundTrip.cpp:93
icFloatNumber minDE1
Definition iccRoundTrip.cpp:89
icFloatNumber maxDE2
Definition iccRoundTrip.cpp:90
icFloatNumber GetMean1()
Definition iccRoundTrip.cpp:86
icFloatNumber GetMean2()
Definition iccRoundTrip.cpp:87
icFloatNumber maxDE1
Definition iccRoundTrip.cpp:90