From: Cristy Date: Sat, 8 Dec 2018 15:19:52 +0000 (-0500) Subject: https://github.com/ImageMagick/ImageMagick/issues/1404 X-Git-Tag: 7.0.8-16~20 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=86769de734162aef37142aa6df130e78a37e7227;p=imagemagick https://github.com/ImageMagick/ImageMagick/issues/1404 --- diff --git a/MagickWand/mogrify.c b/MagickWand/mogrify.c index 65658eb30..da235741b 100644 --- a/MagickWand/mogrify.c +++ b/MagickWand/mogrify.c @@ -1087,8 +1087,12 @@ WandExport MagickBooleanType MogrifyImage(ImageInfo *image_info,const int argc, */ (void) SyncImageSettings(mogrify_info,*image,exception); flags=ParseGeometry(argv[i+1],&geometry_info); + if ((flags & XiValue) == 0) + geometry_info.xi=128.0; if ((flags & PercentValue) != 0) - geometry_info.psi=(double) 65536.0*geometry_info.psi/100.0; + geometry_info.psi=(double) ((PerceptibleReciprocal( + geometry_info.xi)*(geometry_info.rho*geometry_info.sigma))* + (1.0+65535.0*geometry_info.psi/100.0)); (void) CLAHEImage(*image,(size_t) geometry_info.rho,(size_t) geometry_info.sigma,(size_t) geometry_info.xi,(double) geometry_info.psi,exception); diff --git a/MagickWand/operation.c b/MagickWand/operation.c index 17185bfe4..af33f5b80 100644 --- a/MagickWand/operation.c +++ b/MagickWand/operation.c @@ -1971,8 +1971,12 @@ static MagickBooleanType CLISimpleOperatorImage(MagickCLI *cli_wand, flags=ParseGeometry(arg1,&geometry_info); if ((flags & (RhoValue|SigmaValue)) == 0) CLIWandExceptArgBreak(OptionError,"InvalidArgument",option,arg1); - if ((flags & PercentValue) != 0) - geometry_info.psi=(double) 65536.0*geometry_info.psi/100.0; + if ((flags & XiValue) == 0) + geometry_info.xi=128.0; + if ((flags & PercentValue) != 0) + geometry_info.psi=(double) ((PerceptibleReciprocal( + geometry_info.xi)*(geometry_info.rho*geometry_info.sigma))* + (1.0+65535.0*geometry_info.psi/100.0)); (void) CLAHEImage(_image,(size_t) geometry_info.rho,(size_t) geometry_info.sigma,geometry_info.xi,geometry_info.psi,_exception); break; diff --git a/PerlMagick/Magick.xs b/PerlMagick/Magick.xs index a10788f23..cbeeb9fc5 100644 --- a/PerlMagick/Magick.xs +++ b/PerlMagick/Magick.xs @@ -11482,8 +11482,12 @@ Mogrify(ref,...) { flags=ParseGeometry(argument_list[0].string_reference, &geometry_info); + if ((flags & XiValue) == 0) + geometry_info.xi=128.0; if ((flags & PercentValue) != 0) - geometry_info.xi=QuantumRange*geometry_info.xi/100.0; + geometry_info.psi=(double) ((PerceptibleReciprocal( + geometry_info.xi)*(geometry_info.rho*geometry_info.sigma))* + (1.0+65535.0*geometry_info.psi/100.0)); } if (attribute_flag[1] != 0) geometry_info.rho=argument_list[1].integer_reference; diff --git a/PerlMagick/quantum/quantum.xs.in b/PerlMagick/quantum/quantum.xs.in index 322fad438..cd8b8782c 100644 --- a/PerlMagick/quantum/quantum.xs.in +++ b/PerlMagick/quantum/quantum.xs.in @@ -11488,8 +11488,12 @@ Mogrify(ref,...) { flags=ParseGeometry(argument_list[0].string_reference, &geometry_info); + if ((flags & XiValue) == 0) + geometry_info.xi=128.0; if ((flags & PercentValue) != 0) - geometry_info.xi=QuantumRange*geometry_info.xi/100.0; + geometry_info.psi=(double) ((PerceptibleReciprocal( + geometry_info.xi)*(geometry_info.rho*geometry_info.sigma))* + (1.0+65535.0*geometry_info.psi/100.0)); } if (attribute_flag[1] != 0) geometry_info.rho=argument_list[1].integer_reference;