]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Fri, 31 Oct 2014 12:37:49 +0000 (12:37 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Fri, 31 Oct 2014 12:37:49 +0000 (12:37 +0000)
MagickCore/color-private.h
MagickCore/color.c
MagickCore/color.h
MagickCore/pixel.c
MagickCore/vision.c

index 3b3ea0f5143cae00ea9825b9f9df741b04509ff7..aba4913406c77730852b98d8266e613246de2187 100644 (file)
@@ -25,7 +25,9 @@ extern "C" {
 #endif
 
 extern MagickPrivate MagickBooleanType
-  ColorComponentGenesis(void);
+  ColorComponentGenesis(void),
+  IsEquivalentAlpha(const Image *,const PixelInfo *,const PixelInfo *),
+  IsEquivalentIntensity(const Image *,const PixelInfo *,const PixelInfo *);
 
 extern MagickPrivate void
   ColorComponentTerminus(void);
index debdd19d6842469edd03282343a011c941969e14..4412795ab4eb42c69e1f61c7af5c67f31c43571c 100644 (file)
@@ -1629,7 +1629,7 @@ static MagickBooleanType IsColorCacheInstantiated(ExceptionInfo *exception)
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   I s A l p h a S i m i l a r                                               %
++   I s E q u i v a l e n t A l p h a                                         %
 %                                                                             %
 %                                                                             %
 %                                                                             %
@@ -1661,7 +1661,7 @@ static inline double MagickMax(const double x,const double y)
   return(y);
 }
 
-MagickExport MagickBooleanType IsEquivalentAlpha(const Image *image,
+MagickPrivate MagickBooleanType IsEquivalentAlpha(const Image *image,
   const PixelInfo *p,const PixelInfo *q)
 {
   double
@@ -1688,7 +1688,7 @@ MagickExport MagickBooleanType IsEquivalentAlpha(const Image *image,
 %                                                                             %
 %                                                                             %
 %                                                                             %
-+   I s I m a g e S i m i l a r                                               %
++   I s E q u i v a l e n t I m a g e                                         %
 %                                                                             %
 %                                                                             %
 %                                                                             %
@@ -1814,6 +1814,54 @@ MagickExport MagickBooleanType IsEquivalentImage(const Image *image,
 %                                                                             %
 %                                                                             %
 %                                                                             %
++   I s E q u i v a l e n t I n t e n s i t y                                 %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  IsEquivalentIntensity() returns true if the distance between two intensity
+%  values is less than the specified distance in a linear color space.
+%
+%  The format of the IsEquivalentIntensity method is:
+%
+%      void IsEquivalentIntensity(const Image *image,const PixelInfo *p,
+%        const PixelInfo *q)
+%
+%  A description of each parameter follows:
+%
+%    o image: the image.
+%
+%    o p: Pixel p.
+%
+%    o q: Pixel q.
+%
+*/
+MagickPrivate MagickBooleanType IsEquivalentIntensity(const Image *image,
+  const PixelInfo *p,const PixelInfo *q)
+{
+  double
+    fuzz,
+    pixel;
+
+  register double
+    distance;
+
+  if (GetPixelInfoIntensity(p) == GetPixelInfoIntensity(q))
+    return(MagickTrue);
+  fuzz=MagickMax(image->fuzz,MagickSQ1_2)*MagickMax(image->fuzz,MagickSQ1_2);
+  pixel=GetPixelInfoIntensity(p)-GetPixelInfoIntensity(q);
+  distance=pixel*pixel;
+  if (distance > fuzz)
+    return(MagickFalse);
+  return(MagickTrue);
+}
+\f
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %  L i s t C o l o r I n f o                                                  %
 %                                                                             %
 %                                                                             %
index f477b020149f63ca7808c56949ec4b3a4ce59723..80f07034ab5b6d04bf01b3c59da7e9a92e23cae8 100644 (file)
@@ -71,7 +71,6 @@ extern MagickExport const ColorInfo
   **GetColorInfoList(const char *,size_t *,ExceptionInfo *);
 
 extern MagickExport MagickBooleanType
-  IsEquivalentAlpha(const Image *,const PixelInfo *,const PixelInfo *),
   IsEquivalentImage(const Image *,const Image *,ssize_t *x,ssize_t *y,
     ExceptionInfo *),
   ListColorInfo(FILE *,ExceptionInfo *),
index 164d1db4cae016288083e7263bb4a08266643252..a2a652f5025cf08813c81d9816814ef13be69a93 100644 (file)
@@ -5834,7 +5834,7 @@ MagickExport MagickBooleanType InterpolatePixelInfo(const Image *image,
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
 %  IsFuzzyEquivalencePixel() returns MagickTrue if the distance between two
-%  pixels is less than the specified distance in a linear three (or four)u
+%  pixels is less than the specified distance in a linear three (or four)
 %  dimensional color space.
 %
 %  The format of the IsFuzzyEquivalencePixel method is:
index e4da819112dcfa5699afd8fc2e7b4128f3934e3e..2f9990146fa1b809f01982814eecd928cd187910 100644 (file)
@@ -556,7 +556,7 @@ MagickExport Image *ConnectedComponentsImage(const Image *image,
         GetPixelInfoPixel(image,p+neighbor_offset,&target);
         if (((x+dx) < 0) || ((x+dx) >= (ssize_t) image->columns) ||
             ((y+dy) < 0) || ((y+dy) >= (ssize_t) image->rows) ||
-            (IsFuzzyEquivalencePixelInfo(&pixel,&target) == MagickFalse))
+            (IsEquivalentIntensity(image,&pixel,&target) == MagickFalse))
           {
             p+=GetPixelChannels(image);
             continue;