https://github.com/ImageMagick/ImageMagick/issues/503
authorCristy <urban-warrior@imagemagick.org>
Wed, 31 May 2017 11:21:04 +0000 (07:21 -0400)
committerCristy <urban-warrior@imagemagick.org>
Wed, 31 May 2017 11:21:04 +0000 (07:21 -0400)
MagickCore/image.c
MagickWand/mogrify.c
MagickWand/operation.c

index 88adbecd0cb78db365bf40fa3481a646dc0aded0..a5d37b0de8e177550f0b28b4fd4c391a37850fa7 100644 (file)
@@ -3225,6 +3225,8 @@ MagickExport MagickBooleanType SetImageRegionMask(Image *image,
   }
   if (SyncImagePixelCache(image,exception) == MagickFalse)
     return(MagickFalse);
+  if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse)
+    return(MagickFalse);
   status=MagickTrue;
   image_view=AcquireAuthenticCacheView(image,exception);
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
index d26589c118b095ee97bdd8b856046ecd02ab8f37..cbf6ef95e3f1d61eb0d04f0b6bd10961c3017b8d 100644 (file)
@@ -2600,12 +2600,13 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
             (void) SyncImageSettings(mogrify_info,*image,exception);
             if (*option == '+')
               {
-                (void) SetImageRegionMask(*image,ReadPixelMask,
+                (void) SetImageRegionMask(*image,WritePixelMask,
                   (const RectangleInfo *) NULL,exception);
                 break;
               }
             (void) ParseGravityGeometry(*image,argv[i+1],&geometry,exception);
-            (void) SetImageRegionMask(*image,ReadPixelMask,&geometry,exception);
+            (void) SetImageRegionMask(*image,WritePixelMask,&geometry,
+              exception);
             break;
           }
         if (LocaleCompare("render",option+1) == 0)
index 6baf672e67293c881e071037e41522de833f9643..4e7b4e0302eff6045f0c335eb2ae2a5c937193a7 100644 (file)
@@ -3109,12 +3109,12 @@ static MagickBooleanType CLISimpleOperatorImage(MagickCLI *cli_wand,
             CLIWandExceptArgBreak(OptionError,"InvalidArgument",option,arg1);
           if (*option == '+')
             {
-              (void) SetImageRegionMask(_image,ReadPixelMask,
+              (void) SetImageRegionMask(_image,WritePixelMask,
                 (const RectangleInfo *) NULL,_exception);
               break;
             }
           (void) ParseGravityGeometry(_image,arg1,&geometry,_exception);
-          (void) SetImageRegionMask(_image,ReadPixelMask,&geometry,_exception);
+          (void) SetImageRegionMask(_image,WritePixelMask,&geometry,_exception);
           break;
         }
       if (LocaleCompare("remap",option+1) == 0)