]> granicus.if.org Git - imagemagick/commitdiff
https://imagemagick.org/discourse-server/viewtopic.php?f=1&t=35650
authorCristy <mikayla-grace@urban-warrior.org>
Sat, 16 Mar 2019 18:17:01 +0000 (14:17 -0400)
committerCristy <mikayla-grace@urban-warrior.org>
Sat, 16 Mar 2019 18:17:01 +0000 (14:17 -0400)
ChangeLog
MagickCore/composite-private.h
MagickCore/draw.c

index f25bd95c7d781c4a30c26b36ef604c47c1738ee5..861aba954cddfa7e64358136efed8e7b8c6a71fd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2019-03-16  7.0.8-35 Cristy  <quetzlzacatenango@image...>
+  * -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  <quetzlzacatenango@image...>
   * Release ImageMagick version 7.0.8-34, GIT revision 15413:860af935d:20190315
 
index 9df882e4b8651618b1a4c0acd2219235f7571cf7..a078445c17b65e60b49f734ab190d72870cdba5a 100644 (file)
@@ -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,
index 315ea1302674af8f454aa548d753cd34d886f3b1..1fa505951528cff3a1979bb65db5d5694a516720 100644 (file)
@@ -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;
     }