]> granicus.if.org Git - imagemagick/commitdiff
minor note
authoranthony <anthony@git.imagemagick.org>
Thu, 14 Apr 2011 01:08:48 +0000 (01:08 +0000)
committeranthony <anthony@git.imagemagick.org>
Thu, 14 Apr 2011 01:08:48 +0000 (01:08 +0000)
wand/mogrify.c

index a0ddab3039f4385cd9893d1a358c82a086d77eb0..2cf42d835a0c025b1905eb4d8485d08a51ec1ef9 100644 (file)
@@ -2444,8 +2444,9 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
                 /*
                   Composite region.
                 */
-                (void) CompositeImage(region_image, CopyCompositeOp,*image,
-                  region_geometry.x,region_geometry.y);
+                (void) CompositeImage(region_image,region_image->matte !=
+                     MagickFalse ? CopyCompositeOp : OverCompositeOp,*image,
+                     region_geometry.x,region_geometry.y);
                 InheritException(exception,&region_image->exception);
                 *image=DestroyImage(*image);
                 *image=region_image;
@@ -3186,7 +3187,8 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
         Composite transformed region onto image.
       */
       (void) SyncImageSettings(mogrify_info,*image);
-      (void) CompositeImage(region_image,CopyCompositeOp,*image,
+      (void) CompositeImage(region_image,region_image->matte !=
+           MagickFalse ? CopyCompositeOp : OverCompositeOp,*image,
            region_geometry.x,region_geometry.y);
       InheritException(exception,&region_image->exception);
       *image=DestroyImage(*image);
@@ -7473,14 +7475,15 @@ WandExport MagickBooleanType MogrifyImageList(ImageInfo *image_info,
                     /*
                       Set a blending mask for the composition.
                     */
+                    /* POSIBLE ERROR; what if image->mask already set */
                     image->mask=mask_image;
                     (void) NegateImage(image->mask,MagickFalse);
                   }
               }
             (void) CompositeImageChannel(image,channel,image->compose,
               composite_image,geometry.x,geometry.y);
-            if (image->mask != (Image *) NULL)
-              image->mask=DestroyImage(image->mask);
+            if (mask_image != (Image *) NULL)
+              mask_image=image->mask=DestroyImage(image->mask);
             composite_image=DestroyImage(composite_image);
             InheritException(exception,&image->exception);
             *images=DestroyImageList(*images);