summaryrefslogtreecommitdiff
path: root/src/cmsxform.c
diff options
context:
space:
mode:
authorMarti Maria <info@littlecms.com>2015-08-10 17:41:45 +0200
committerMarti Maria <info@littlecms.com>2015-08-10 17:41:45 +0200
commit9e2f5031dd6ce742be3924216ed56fa56f09af00 (patch)
tree41e1dd626241a64f491c5fbef47ee02ec19d6ef4 /src/cmsxform.c
parent07da965b104b9e0b4eae34dcaa30445a835411e3 (diff)
downloadlcms2-9e2f5031dd6ce742be3924216ed56fa56f09af00.tar.gz
Fix for luminance tag
Diffstat (limited to 'src/cmsxform.c')
-rw-r--r--src/cmsxform.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/cmsxform.c b/src/cmsxform.c
index a2615a1..d53575f 100644
--- a/src/cmsxform.c
+++ b/src/cmsxform.c
@@ -960,6 +960,22 @@ cmsBool IsProperColorSpace(cmsColorSpaceSignature Check, cmsUInt32Number dwForm
// ----------------------------------------------------------------------------------------------------------------
+// Jun-21-2000: Some profiles (those that comes with W2K) comes
+// with the media white (media black?) x 100. Add a sanity check
+
+static
+void NormalizeXYZ(cmsCIEXYZ* Dest)
+{
+ while (Dest -> X > 2. &&
+ Dest -> Y > 2. &&
+ Dest -> Z > 2.) {
+
+ Dest -> X /= 10.;
+ Dest -> Y /= 10.;
+ Dest -> Z /= 10.;
+ }
+}
+
static
void SetWhitePoint(cmsCIEXYZ* wtPt, const cmsCIEXYZ* src)
{
@@ -972,6 +988,8 @@ void SetWhitePoint(cmsCIEXYZ* wtPt, const cmsCIEXYZ* src)
wtPt ->X = src->X;
wtPt ->Y = src->Y;
wtPt ->Z = src->Z;
+
+ NormalizeXYZ(wtPt);
}
}