Commit a2bdddb48 for imagemagick.org
commit a2bdddb486600bfbfefac57676610e652d8081a5
Author: Cristy <urban-warrior@imagemagick.org>
Date: Sun May 31 10:48:20 2026 -0400
https://github.com/ImageMagick/ImageMagick/issues/8766
diff --git a/MagickCore/statistic.c b/MagickCore/statistic.c
index 39796b863..7b14927fb 100644
--- a/MagickCore/statistic.c
+++ b/MagickCore/statistic.c
@@ -1792,32 +1792,9 @@ MagickExport ChannelPerceptualHash *GetImagePerceptualHash(const Image *image,
if (moments == (ChannelMoments *) NULL)
break;
for (channel=0; channel <= MaxPixelChannels; channel++)
- {
- double
- mn =DBL_MAX,
- mx = -DBL_MAX;
-
for (j=0; j < MaximumNumberOfImageMoments; j++)
- {
- double x = moments[channel].invariant[j];
- double alpha = (x > 0.0 ? 1.0 : (x < 0.0 ? -1.0 : 0.0))*
- log10(fabs(x)+MagickEpsilon);
-
- if (alpha < mn)
- mn=alpha;
- if (alpha > mx)
- mx=alpha;
- }
- for (j=0; j < MaximumNumberOfImageMoments; j++)
- {
- double x = moments[channel].invariant[j];
- double alpha = (x > 0.0 ? 1.0 : (x < 0.0 ? -1.0 : 0.0))*
- log10(fabs(x)+MagickEpsilon);
- double scaled = 255.0*(alpha-mn)*MagickSafeReciprocal(mx-mn);
- perceptual_hash[channel].phash[i][j]=MagickMin(MagickMax(scaled,0.0),
- 255.0);
- }
- }
+ perceptual_hash[channel].phash[i][j]=(-MagickSafeLog10(fabs(
+ moments[channel].invariant[j])));
moments=(ChannelMoments *) RelinquishMagickMemory(moments);
}
colorspaces=DestroyString(colorspaces);