Commit 851c62eef for imagemagick.org
commit 851c62eef95980a8a1030a671ee068ee0ea5dae8
Author: Cristy <urban-warrior@imagemagick.org>
Date: Sat Feb 28 13:33:57 2026 -0500
revert mathematical add & minus
diff --git a/MagickCore/composite.c b/MagickCore/composite.c
index 54296c2e5..7757a861c 100644
--- a/MagickCore/composite.c
+++ b/MagickCore/composite.c
@@ -2777,7 +2777,7 @@ MagickExport MagickBooleanType CompositeImage(Image *image,
pixel=Dc;
break;
}
- pixel=Dc+(QuantumScale*Si-0.5)*Dc;
+ pixel=(QuantumScale*Si)*Dc;
break;
}
case ChangeMaskCompositeOp:
@@ -3178,17 +3178,22 @@ MagickExport MagickBooleanType CompositeImage(Image *image,
}
case MinusDstCompositeOp:
{
- if (compose_sync == MagickFalse)
+ if (compose_sync == MagickFalse)
{
pixel=Dc-Sc;
break;
}
- pixel=gamma*(Da*Dc-Sa*Sc);
+ pixel=gamma*(Sa*Sc+Da*Dc-2.0*Da*Dc*Sa);
break;
}
case MinusSrcCompositeOp:
{
- pixel=Sc-Dc;
+ if (compose_sync == MagickFalse)
+ {
+ pixel=Sc-Dc;
+ break;
+ }
+ pixel=gamma*(Da*Dc+Sa*Sc-2.0*Sa*Sc*Da);
break;
}
case ModulateCompositeOp:
@@ -3225,22 +3230,22 @@ MagickExport MagickBooleanType CompositeImage(Image *image,
}
case ModulusAddCompositeOp:
{
- pixel=(double) QuantumRange*(Sc+Dc-floor(Sc+Dc));
+ if (compose_sync == MagickFalse)
+ {
+ pixel=(Quantum) QuantumRange*((Sc+Dc)-floor(Sc+Dc));
+ break;
+ }
+ pixel=(Quantum) QuantumRange*((Sca+Dca)-floor(Sca+Dca));
break;
}
case ModulusSubtractCompositeOp:
{
- D=(Da > 0.0) ? (Dc/Da) : 0.0;
- S=(Sa > 0.0) ? (Sc/Sa) : 0.0;
- blend=S-D;
- if (blend < 0.0)
- blend+=1.0;
if (compose_sync == MagickFalse)
{
- pixel=(double) QuantumRange*(blend*Sa);
+ pixel=(Quantum) QuantumRange*((Sc-Dc)-floor(Sc-Dc));
break;
}
- pixel=(double) QuantumRange*(blend*Sa);
+ pixel=(Quantum) QuantumRange*((Sca-Dca)-floor(Sca-Dca));
break;
}
case MultiplyCompositeOp: