From: dirk Date: Sat, 23 May 2015 15:25:51 +0000 (+0000) Subject: Fixed hardmix calculation. X-Git-Tag: 7.0.1-0~1011 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1749597845aafe5e61783d9a1b43d333f7071ccd;p=imagemagick Fixed hardmix calculation. --- diff --git a/MagickCore/composite.c b/MagickCore/composite.c index d4dd47e5a..ef4957b04 100644 --- a/MagickCore/composite.c +++ b/MagickCore/composite.c @@ -1464,6 +1464,8 @@ MagickExport MagickBooleanType CompositeImage(Image *image, break; } case DstOverCompositeOp: + case OverCompositeOp: + case SrcOverCompositeOp: { alpha=Sa+Da-Sa*Da; break; @@ -1479,12 +1481,6 @@ MagickExport MagickBooleanType CompositeImage(Image *image, alpha=Sa*(1.0-Da); break; } - case OverCompositeOp: - case SrcOverCompositeOp: - { - alpha=Sa+Da-Sa*Da; - break; - } case BlendCompositeOp: case PlusCompositeOp: { @@ -1692,7 +1688,7 @@ MagickExport MagickBooleanType CompositeImage(Image *image, break; } default: - { + { gamma=PerceptibleReciprocal(alpha); break; } @@ -1949,14 +1945,7 @@ MagickExport MagickBooleanType CompositeImage(Image *image, } case HardMixCompositeOp: { - double - gamma; - - if ((Sa+Da) < 1.0) - gamma=0.0; - else - gamma=1.0; - pixel=(gamma*(1.0-Sca)*(1.0-Dca))+Sa*(1.0-Sca)*Dca+Da*(1.0-Dca)*Sca; + pixel=gamma*(((Sca+Dca) < 1.0) ? 0.0 : QuantumRange); break; } case HueCompositeOp: