summaryrefslogtreecommitdiff
path: root/src/cmstypes.c
diff options
context:
space:
mode:
authorMarti Maria <marti.maria@littlecms.com>2020-08-04 11:06:16 +0200
committerMarti Maria <marti.maria@littlecms.com>2020-08-04 11:06:16 +0200
commit29b0d7953af3a49ed524042e4622a842e38e3329 (patch)
tree2452e1ad9bc7421aca59220605b7f0ad92682270 /src/cmstypes.c
parent843cd158283d6e83588527e1020bee5ec63800b3 (diff)
downloadlcms2-29b0d7953af3a49ed524042e4622a842e38e3329.tar.gz
Fix matrix write on LUT8
LUT16 was fixed but LUT8 not, so fix it as well.
Diffstat (limited to 'src/cmstypes.c')
-rw-r--r--src/cmstypes.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/cmstypes.c b/src/cmstypes.c
index b571502..825b11e 100644
--- a/src/cmstypes.c
+++ b/src/cmstypes.c
@@ -1866,6 +1866,7 @@ cmsBool Type_LUT8_Write(struct _cms_typehandler_struct* self, cmsIOHANDLER* io,
mpe = NewLUT -> Elements;
if (mpe ->Type == cmsSigMatrixElemType) {
+ if (mpe->InputChannels != 3 || mpe->OutputChannels != 3) return FALSE;
MatMPE = (_cmsStageMatrixData*) mpe ->Data;
mpe = mpe -> Next;
}
@@ -1891,7 +1892,6 @@ cmsBool Type_LUT8_Write(struct _cms_typehandler_struct* self, cmsIOHANDLER* io,
return FALSE;
}
-
if (clut == NULL)
clutPoints = 0;
else
@@ -1905,16 +1905,14 @@ cmsBool Type_LUT8_Write(struct _cms_typehandler_struct* self, cmsIOHANDLER* io,
n = NewLUT->InputChannels * NewLUT->OutputChannels;
if (MatMPE != NULL) {
-
- for (i = 0; i < n; i++)
+
+ for (i = 0; i < 9; i++)
{
if (!_cmsWrite15Fixed16Number(io, MatMPE->Double[i])) return FALSE;
}
}
else {
-
- if (n != 9) return FALSE;
-
+
if (!_cmsWrite15Fixed16Number(io, 1)) return FALSE;
if (!_cmsWrite15Fixed16Number(io, 0)) return FALSE;
if (!_cmsWrite15Fixed16Number(io, 0)) return FALSE;
@@ -2193,7 +2191,7 @@ cmsBool Type_LUT16_Write(struct _cms_typehandler_struct* self, cmsIOHANDLER* io,
if (!_cmsWriteUInt8Number(io, 0)) return FALSE; // Padding
if (MatMPE != NULL) {
-
+
for (i = 0; i < 9; i++)
{
if (!_cmsWrite15Fixed16Number(io, MatMPE->Double[i])) return FALSE;