From: Cristy Date: Sat, 3 Dec 2016 00:37:09 +0000 (-0500) Subject: ... X-Git-Tag: 7.0.3-9~19 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d60923bd2e19e66083d4359e22890f788b270501;p=imagemagick ... --- diff --git a/MagickCore/image.c b/MagickCore/image.c index 8e981ccf0..b64581cd3 100644 --- a/MagickCore/image.c +++ b/MagickCore/image.c @@ -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; } } diff --git a/MagickWand/mogrify.c b/MagickWand/mogrify.c index b5f29124a..56e121ce3 100644 --- a/MagickWand/mogrify.c +++ b/MagickWand/mogrify.c @@ -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; diff --git a/MagickWand/operation.c b/MagickWand/operation.c index ec3ef770b..9cb320922 100644 --- a/MagickWand/operation.c +++ b/MagickWand/operation.c @@ -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)