diff options
author | Marti Maria <marti.maria@littlecms.com> | 2020-08-04 11:06:16 +0200 |
---|---|---|
committer | Marti Maria <marti.maria@littlecms.com> | 2020-08-04 11:06:16 +0200 |
commit | 29b0d7953af3a49ed524042e4622a842e38e3329 (patch) | |
tree | 2452e1ad9bc7421aca59220605b7f0ad92682270 /src/cmstypes.c | |
parent | 843cd158283d6e83588527e1020bee5ec63800b3 (diff) | |
download | lcms2-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.c | 12 |
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; |