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}
icStatusCMM
CMM return status values.
#define ICFLOATSFX
String formating macros need to match precision of icFloatNumber If precision is double change the "f...
icStatusCMM EvaluateProfile(CIccProfile *pProfile, icUInt8Number nGran=0, icRenderingIntent nIntent=((icRenderingIntent) 0x3f3f3f3f), icXformInterp nInterp=icInterpLinear, bool buseMpeTags=true)
const icChar * GetRenderingIntentName(icRenderingIntent val, bool bIsV5=false)
icStatusCMM EvaluateProfile(CIccProfile *pProfile, icRenderingIntent nIntent=((icRenderingIntent) 0x3f3f3f3f), icXformInterp nInterp=icInterpLinear, bool buseMpeTags=true)