From: Cristy Date: Sat, 16 Mar 2019 18:17:01 +0000 (-0400) Subject: https://imagemagick.org/discourse-server/viewtopic.php?f=1&t=35650 X-Git-Tag: 7.0.8-35~22 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e8758e09093361175aae6d03f4046329a91fea7e;p=imagemagick https://imagemagick.org/discourse-server/viewtopic.php?f=1&t=35650 --- diff --git a/ChangeLog b/ChangeLog index f25bd95c7..861aba954 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2019-03-16 7.0.8-35 Cristy + * -draw image DstOver is now responsive to the composite operator (reference + https://imagemagick.org/discourse-server/viewtopic.php?f=1&t=35650). + 2019-03-15 7.0.8-34 Cristy * Release ImageMagick version 7.0.8-34, GIT revision 15413:860af935d:20190315 diff --git a/MagickCore/composite-private.h b/MagickCore/composite-private.h index 9df882e4b..a078445c1 100644 --- a/MagickCore/composite-private.h +++ b/MagickCore/composite-private.h @@ -119,8 +119,8 @@ static inline void CompositePixelOver(const Image *image,const PixelInfo *p, } } -static inline void CompositePixelInfoOver(const PixelInfo *p, - const double alpha,const PixelInfo *q,const double beta,PixelInfo *composite) +static inline void CompositePixelInfoOver(const PixelInfo *p,const double alpha, + const PixelInfo *q,const double beta,PixelInfo *composite) { double Da, diff --git a/MagickCore/draw.c b/MagickCore/draw.c index 315ea1302..1fa505951 100644 --- a/MagickCore/draw.c +++ b/MagickCore/draw.c @@ -5450,7 +5450,12 @@ MagickExport MagickBooleanType DrawPrimitive(Image *image, affine.tx=(double) geometry.x; affine.ty=(double) geometry.y; composite_image->interpolate=image->interpolate; - status&=DrawAffineImage(image,composite_image,&affine,exception); + if ((draw_info->compose == OverCompositeOp) || + (draw_info->compose == SrcOverCompositeOp)) + (void) DrawAffineImage(image,composite_image,&affine,exception); + else + (void) CompositeImage(image,composite_image,draw_info->compose, + MagickTrue,geometry.x,geometry.y,exception); composite_image=DestroyImage(composite_image); break; }