diff options
author | Marti Maria <marti.maria@littlecms.com> | 2022-09-01 01:07:13 +0300 |
---|---|---|
committer | Marti Maria <marti.maria@littlecms.com> | 2022-09-01 01:07:13 +0300 |
commit | eaed773f8201461e7b80df5f935f6183cebda272 (patch) | |
tree | c660049671e4c677ab374949d43c37fa461f6e86 | |
parent | 62aca4b8148bcfb85d798e2a70612e0ce833551b (diff) |
Add a check for alpha 0 on premultiplied alpha
Was missing in the generic cases
-rw-r--r-- | src/cmspack.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/cmspack.c b/src/cmspack.c index 5ab4525..9d312a0 100644 --- a/src/cmspack.c +++ b/src/cmspack.c @@ -592,8 +592,11 @@ cmsUInt8Number* UnrollAnyWordsPremul(CMSREGISTER _cmsTRANSFORM* info, if (SwapEndian) v = CHANGE_ENDIAN(v); - v = (v << 16) / alpha_factor; - if (v > 0xffff) v = 0xffff; + if (alpha_factor > 0) { + + v = (v << 16) / alpha_factor; + if (v > 0xffff) v = 0xffff; + } wIn[index] = (cmsUInt16Number) (Reverse ? REVERSE_FLAVOR_16(v) : v); @@ -674,8 +677,11 @@ cmsUInt8Number* UnrollPlanarWordsPremul(CMSREGISTER _cmsTRANSFORM* info, if (SwapEndian) v = CHANGE_ENDIAN(v); - v = (v << 16) / alpha_factor; - if (v > 0xffff) v = 0xffff; + if (alpha_factor > 0) { + + v = (v << 16) / alpha_factor; + if (v > 0xffff) v = 0xffff; + } wIn[index] = (cmsUInt16Number) (Reverse ? REVERSE_FLAVOR_16(v) : v); |