diff options
Diffstat (limited to 'target/targen.c')
-rw-r--r-- | target/targen.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/target/targen.c b/target/targen.c index 74bbe96..96cda6c 100644 --- a/target/targen.c +++ b/target/targen.c @@ -725,9 +725,19 @@ double xpow /* Extra device power, default = none */ /* Get details of conversion (Arguments may be NULL if info not needed) */ s->luo->spaces(s->luo, &ins, NULL, &outs, NULL, NULL, NULL, NULL, NULL, NULL); +//printf("~1 xmask = 0x%x, ins = %s\n",xmask,icm2str(icmColorSpaceSignature, ins)); if (icx_colorant_comb_match_icc(xmask, ins) == 0) { - s->luo->del(s->luo); - error("ICC profile doesn't match device!"); + + /* Should really see if ICC profile has ColorantTable tag, */ + /* and match them against targen specs. For now, */ + /* simply make sure the channel counts match and issue */ + /* a warning. */ + if (icx_noofinks(xmask) != icmCSSig2nchan(ins)) { + s->luo->del(s->luo); + error("ICC profile doesn't match device!"); + } else { + warning("Profile '%s' no. channels match, but colorant types have not been checked",profName); + } } /* Grab any device calibration curves */ |