]> granicus.if.org Git - imagemagick/commitdiff
...
authorCristy <urban-warrior@imagemagick.org>
Sat, 3 Dec 2016 00:37:09 +0000 (19:37 -0500)
committerCristy <urban-warrior@imagemagick.org>
Sat, 3 Dec 2016 00:37:09 +0000 (19:37 -0500)
MagickCore/image.c
MagickWand/mogrify.c
MagickWand/operation.c

index 8e981ccf08a3c4281654563567ee1d67472cbb8c..b64581cd3fe538522ed4c0fa97f35277b28c0578 100644 (file)
@@ -3084,12 +3084,12 @@ MagickExport MagickBooleanType SetImageMask(Image *image,const PixelMask type,
       {
         case WritePixelMask:
         {
-          SetPixelWriteMask(image,ClampToQuantum(QuantumRange-intensity),q);
+          SetPixelWriteMask(image,ClampToQuantum(intensity),q);
           break;
         }
         default:
         {
-          SetPixelReadMask(image,ClampToQuantum(QuantumRange-intensity),q);
+          SetPixelReadMask(image,ClampToQuantum(intensity),q);
           break;
         }
       }
index b5f29124ac9b3c45adf44ac01aaf331ec1a6dc7d..56e121ce381848db156f2e0a6b13a68bbcf80d17 100644 (file)
@@ -2142,6 +2142,7 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc,
             mask=GetImageCache(mogrify_info,argv[i+1],exception);
             if (mask == (Image *) NULL)
               break;
+            (void) NegateImage(mask,MagickFalse,exception);
             (void) SetImageMask(*image,WritePixelMask,mask,exception);
             mask=DestroyImage(mask);
             break;
index ec3ef770b63052860d7349427e286671bb17d3d8..9cb32092233fdf3319b5278a226a013ad0ea2985 100644 (file)
@@ -2122,10 +2122,10 @@ static MagickBooleanType CLISimpleOperatorImage(MagickCLI *cli_wand,
         {
           double
             gamma;
-            
+
           KernelInfo
             *kernel_info;
-            
+
           register ssize_t
             j;
 
@@ -2732,9 +2732,27 @@ static MagickBooleanType CLISimpleOperatorImage(MagickCLI *cli_wand,
         }
       if (LocaleCompare("mask",option+1) == 0)
         {
-          CLIWandWarnReplaced("-write-mask");
-          (void) CLISimpleOperatorImage(cli_wand,"-write-mask",NULL,NULL,
-            exception);
+          Image
+            *mask;
+
+          if (IfPlusOp)
+            {
+              /*
+                Remove a mask.
+              */
+              (void) SetImageMask(_image,WritePixelMask,(Image *) NULL,
+                _exception);
+              break;
+            }
+          /*
+            Set the image mask.
+          */
+          mask=GetImageCache(_image_info,arg1,_exception);
+          if (mask == (Image *) NULL)
+            break;
+          (void) NegateImage(mask,MagickFalse,exception);
+          (void) SetImageMask(_image,WritePixelMask,mask,_exception);
+          mask=DestroyImage(mask);
           break;
         }
       if (LocaleCompare("matte",option+1) == 0)