#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);
% %
% %
% %
-+ 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 %
% %
% %
% %
return(y);
}
-MagickExport MagickBooleanType IsEquivalentAlpha(const Image *image,
+MagickPrivate MagickBooleanType IsEquivalentAlpha(const Image *image,
const PixelInfo *p,const PixelInfo *q)
{
double
% %
% %
% %
-+ 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 %
% %
% %
% %
% %
% %
% %
++ 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 %
% %
% %
**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 *),
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% 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:
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;