]> granicus.if.org Git - imagemagick/commitdiff
https://github.com/ImageMagick/ImageMagick/issues/1404
authorCristy <urban-warrior@imagemagick.org>
Sat, 8 Dec 2018 15:19:52 +0000 (10:19 -0500)
committerCristy <urban-warrior@imagemagick.org>
Sat, 8 Dec 2018 15:19:52 +0000 (10:19 -0500)
MagickWand/mogrify.c
MagickWand/operation.c
PerlMagick/Magick.xs
PerlMagick/quantum/quantum.xs.in

index 65658eb307063c4c6f67dc5fbbdaf835d986a591..da235741b72799683531caf816de4eb63671efd0 100644 (file)
@@ -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);
index 17185bfe4f02cbd9e37cd32d8fa721ba0f6e940c..af33f5b80a7330fb475318fe31e8cb90d4656881 100644 (file)
@@ -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;
index a10788f23cfa78cb5105028bb72f3a989549c58f..cbeeb9fc514b2b1c37ceb3798e534d9c40610f1e 100644 (file)
@@ -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;
index 322fad43828b6ecaa1ecfac9c1761fe30c9af6d7..cd8b8782c98706fdcd617b789f61129411040adc 100644 (file)
@@ -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;