diff --git a/MagickCore/composite.c b/MagickCore/composite.c
index 04cb896..eea733b 100644
--- a/MagickCore/composite.c
+++ b/MagickCore/composite.c
@@ -79,30 +79,25 @@
% %
% %
% %
-% C o m p o s i t e I m a g e C h a n n e l %
+% C o m p o s i t e I m a g e %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% CompositeImageChannel() returns the second image composited onto the first
+% CompositeImage() returns the second image composited onto the first
% at the specified offset, using the specified composite method.
%
-% The format of the CompositeImageChannel method is:
+% The format of the CompositeImage method is:
%
% MagickBooleanType CompositeImage(Image *image,
% const CompositeOperator compose,Image *composite_image,
% const ssize_t x_offset,const ssize_t y_offset)
-% MagickBooleanType CompositeImageChannel(Image *image,
-% const ChannelType channel,const CompositeOperator compose,
-% Image *composite_image,const ssize_t x_offset,const ssize_t y_offset)
%
% A description of each parameter follows:
%
% o image: the destination image, modified by he composition
%
-% o channel: the channel.
-%
% o compose: This operator affects how the composite is applied to
% the image. The operators and how they are utilized are listed here
% http://www.w3.org/TR/SVG12/#compositing.
@@ -334,7 +329,7 @@
}
static inline void CompositeDarken(const Image *image,const PixelInfo *p,
- const PixelInfo *q,const ChannelType channel,PixelInfo *composite)
+ const PixelInfo *q,PixelInfo *composite)
{
MagickRealType
gamma;
@@ -372,8 +367,7 @@
}
static inline void CompositeDarkenIntensity(const Image *image,
- const PixelInfo *p,const PixelInfo *q,const ChannelType channel,
- PixelInfo *composite)
+ const PixelInfo *p,const PixelInfo *q,PixelInfo *composite)
{
MagickRealType
Da,
@@ -420,7 +414,7 @@
}
static inline void CompositeDifference(const Image *image,const PixelInfo *p,
- const PixelInfo *q,const ChannelType channel,PixelInfo *composite)
+ const PixelInfo *q,PixelInfo *composite)
{
MagickRealType
Da,
@@ -478,7 +472,7 @@
}
static inline void CompositeDivide(const Image *image,const PixelInfo *p,
- const PixelInfo *q,const ChannelType channel,PixelInfo *composite)
+ const PixelInfo *q,PixelInfo *composite)
{
MagickRealType
Da,
@@ -530,7 +524,7 @@
}
static inline void CompositeExclusion(const Image *image,const PixelInfo *p,
- const PixelInfo *q,const ChannelType channel,PixelInfo *composite)
+ const PixelInfo *q,PixelInfo *composite)
{
MagickRealType
gamma,
@@ -684,7 +678,7 @@
}
static inline void CompositeLighten(const Image *image,const PixelInfo *p,
- const PixelInfo *q,const ChannelType channel,PixelInfo *composite)
+ const PixelInfo *q,PixelInfo *composite)
{
MagickRealType
gamma;
@@ -722,8 +716,7 @@
}
static inline void CompositeLightenIntensity(const Image *image,
- const PixelInfo *p,const PixelInfo *q,const ChannelType channel,
- PixelInfo *composite)
+ const PixelInfo *p,const PixelInfo *q,PixelInfo *composite)
{
MagickRealType
Da,
@@ -885,8 +878,7 @@
}
static inline void CompositeMathematics(const Image *image,const PixelInfo *p,
- const PixelInfo *q,const ChannelType channel, const GeometryInfo *args,
- PixelInfo *composite)
+ const PixelInfo *q,const GeometryInfo *args,PixelInfo *composite)
{
MagickRealType
Da,
@@ -932,7 +924,7 @@
}
static inline void CompositePlus(const Image *image,const PixelInfo *p,
- const PixelInfo *q,const ChannelType channel,PixelInfo *composite)
+ const PixelInfo *q,PixelInfo *composite)
{
/*
NOTE: "Plus" does not use 'over' alpha-blending but uses a special
@@ -983,7 +975,7 @@
}
static inline void CompositeMinus(const Image *image,const PixelInfo *p,
- const PixelInfo *q,const ChannelType channel,PixelInfo *composite)
+ const PixelInfo *q,PixelInfo *composite)
{
MagickRealType
Da,
@@ -1033,7 +1025,7 @@
}
static inline void CompositeModulusAdd(const Image *image,const PixelInfo *p,
- const PixelInfo *q,const ChannelType channel,PixelInfo *composite)
+ const PixelInfo *q,PixelInfo *composite)
{
MagickRealType
Da,
@@ -1083,8 +1075,7 @@
}
static inline void CompositeModulusSubtract(const Image *image,
- const PixelInfo *p,const PixelInfo *q, const ChannelType channel,
- PixelInfo *composite)
+ const PixelInfo *p,const PixelInfo *q,PixelInfo *composite)
{
MagickRealType
Da,
@@ -1128,7 +1119,7 @@
}
static inline void CompositeMultiply(const Image *image,const PixelInfo *p,
- const PixelInfo *q,const ChannelType channel,PixelInfo *composite)
+ const PixelInfo *q,PixelInfo *composite)
{
MagickRealType
Da,
@@ -1286,7 +1277,7 @@
}
static inline void CompositeScreen(const Image *image,const PixelInfo *p,
- const PixelInfo *q,const ChannelType channel,PixelInfo *composite)
+ const PixelInfo *q,PixelInfo *composite)
{
MagickRealType
Da,
@@ -1555,18 +1546,6 @@
const CompositeOperator compose,const Image *composite_image,
const ssize_t x_offset,const ssize_t y_offset)
{
- MagickBooleanType
- status;
-
- status=CompositeImageChannel(image,DefaultChannels,compose,composite_image,
- x_offset,y_offset);
- return(status);
-}
-
-MagickExport MagickBooleanType CompositeImageChannel(Image *image,
- const ChannelType channel,const CompositeOperator compose,
- const Image *composite_image,const ssize_t x_offset,const ssize_t y_offset)
-{
#define CompositeImageTag "Composite/Image"
CacheView
@@ -2395,86 +2374,83 @@
}
case PlusCompositeOp:
{
- CompositePlus(image,&source,&destination,channel,&composite);
+ CompositePlus(image,&source,&destination,&composite);
break;
}
case MinusDstCompositeOp:
{
- CompositeMinus(image,&source,&destination,channel,&composite);
+ CompositeMinus(image,&source,&destination,&composite);
break;
}
case MinusSrcCompositeOp:
{
- CompositeMinus(image,&destination,&source,channel,&composite);
+ CompositeMinus(image,&destination,&source,&composite);
break;
}
case ModulusAddCompositeOp:
{
- CompositeModulusAdd(image,&source,&destination,channel,&composite);
+ CompositeModulusAdd(image,&source,&destination,&composite);
break;
}
case ModulusSubtractCompositeOp:
{
- CompositeModulusSubtract(image,&source,&destination,channel,
- &composite);
+ CompositeModulusSubtract(image,&source,&destination,&composite);
break;
}
case DifferenceCompositeOp:
{
- CompositeDifference(image,&source,&destination,channel,&composite);
+ CompositeDifference(image,&source,&destination,&composite);
break;
}
case ExclusionCompositeOp:
{
- CompositeExclusion(image,&source,&destination,channel,&composite);
+ CompositeExclusion(image,&source,&destination,&composite);
break;
}
case MultiplyCompositeOp:
{
- CompositeMultiply(image,&source,&destination,channel,&composite);
+ CompositeMultiply(image,&source,&destination,&composite);
break;
}
case ScreenCompositeOp:
{
- CompositeScreen(image,&source,&destination,channel,&composite);
+ CompositeScreen(image,&source,&destination,&composite);
break;
}
case DivideDstCompositeOp:
{
- CompositeDivide(image,&source,&destination,channel,&composite);
+ CompositeDivide(image,&source,&destination,&composite);
break;
}
case DivideSrcCompositeOp:
{
- CompositeDivide(image,&destination,&source,channel,&composite);
+ CompositeDivide(image,&destination,&source,&composite);
break;
}
case DarkenCompositeOp:
{
- CompositeDarken(image,&source,&destination,channel,&composite);
+ CompositeDarken(image,&source,&destination,&composite);
break;
}
case LightenCompositeOp:
{
- CompositeLighten(image,&source,&destination,channel,&composite);
+ CompositeLighten(image,&source,&destination,&composite);
break;
}
case DarkenIntensityCompositeOp:
{
- CompositeDarkenIntensity(image,&source,&destination,channel,
- &composite);
+ CompositeDarkenIntensity(image,&source,&destination,&composite);
break;
}
case LightenIntensityCompositeOp:
{
- CompositeLightenIntensity(image,&source,&destination,channel,
- &composite);
+ CompositeLightenIntensity(image,&source,&destination,&composite);
break;
}
case MathematicsCompositeOp:
{
- CompositeMathematics(image,&source,&destination,channel,
- &geometry_info,&composite);
+ CompositeMathematics(image,&source,&destination,&geometry_info,
+ &composite);
break;
}
case ColorDodgeCompositeOp:
@@ -2730,7 +2706,7 @@
proceed;
#if defined(MAGICKCORE_OPENMP_SUPPORT)
- #pragma omp critical (MagickCore_CompositeImageChannel)
+ #pragma omp critical (MagickCore_CompositeImage)
#endif
proceed=SetImageProgress(image,CompositeImageTag,progress++,
image->rows);
diff --git a/MagickCore/composite.h b/MagickCore/composite.h
index 6808094..19dea37 100644
--- a/MagickCore/composite.h
+++ b/MagickCore/composite.h
@@ -97,8 +97,6 @@
extern MagickExport MagickBooleanType
CompositeImage(Image *,const CompositeOperator,const Image *,const ssize_t,
const ssize_t),
- CompositeImageChannel(Image *,const ChannelType,const CompositeOperator,
- const Image *,const ssize_t,const ssize_t),
TextureImage(Image *,const Image *);
#if defined(__cplusplus) || defined(c_plusplus)
diff --git a/MagickCore/effect.c b/MagickCore/effect.c
index 8a10c0a..826d987 100644
--- a/MagickCore/effect.c
+++ b/MagickCore/effect.c
@@ -106,16 +106,11 @@
%
% Image *AdaptiveBlurImage(const Image *image,const double radius,
% const double sigma,ExceptionInfo *exception)
-% Image *AdaptiveBlurImageChannel(const Image *image,
-% const ChannelType channel,double radius,const double sigma,
-% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o image: the image.
%
-% o channel: the channel type.
-%
% o radius: the radius of the Gaussian, in pixels, not counting the center
% pixel.
%
@@ -125,17 +120,6 @@
%
*/
-MagickExport Image *AdaptiveBlurImage(const Image *image,const double radius,
- const double sigma,ExceptionInfo *exception)
-{
- Image
- *blur_image;
-
- blur_image=AdaptiveBlurImageChannel(image,DefaultChannels,radius,sigma,
- exception);
- return(blur_image);
-}
-
MagickExport MagickBooleanType AdaptiveLevelImage(Image *image,
const char *levels)
{
@@ -180,9 +164,8 @@
return(status);
}
-MagickExport Image *AdaptiveBlurImageChannel(const Image *image,
- const ChannelType channel,const double radius,const double sigma,
- ExceptionInfo *exception)
+MagickExport Image *AdaptiveBlurImage(const Image *image,
+ const double radius,const double sigma,ExceptionInfo *exception)
{
#define AdaptiveBlurImageTag "Convolve/Image"
#define MagickSigma (fabs(sigma) <= MagickEpsilon ? 1.0 : sigma)
@@ -418,7 +401,7 @@
proceed;
#if defined(MAGICKCORE_OPENMP_SUPPORT)
- #pragma omp critical (MagickCore_AdaptiveBlurImageChannel)
+ #pragma omp critical (MagickCore_AdaptiveBlurImage)
#endif
proceed=SetImageProgress(image,AdaptiveBlurImageTag,progress++,
image->rows);
@@ -460,16 +443,11 @@
%
% Image *AdaptiveSharpenImage(const Image *image,const double radius,
% const double sigma,ExceptionInfo *exception)
-% Image *AdaptiveSharpenImageChannel(const Image *image,
-% const ChannelType channel,double radius,const double sigma,
-% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o image: the image.
%
-% o channel: the channel type.
-%
% o radius: the radius of the Gaussian, in pixels, not counting the center
% pixel.
%
@@ -478,22 +456,9 @@
% o exception: return any errors or warnings in this structure.
%
*/
-
MagickExport Image *AdaptiveSharpenImage(const Image *image,const double radius,
const double sigma,ExceptionInfo *exception)
{
- Image
- *sharp_image;
-
- sharp_image=AdaptiveSharpenImageChannel(image,DefaultChannels,radius,sigma,
- exception);
- return(sharp_image);
-}
-
-MagickExport Image *AdaptiveSharpenImageChannel(const Image *image,
- const ChannelType channel,const double radius,const double sigma,
- ExceptionInfo *exception)
-{
#define AdaptiveSharpenImageTag "Convolve/Image"
#define MagickSigma (fabs(sigma) <= MagickEpsilon ? 1.0 : sigma)
@@ -728,7 +693,7 @@
proceed;
#if defined(MAGICKCORE_OPENMP_SUPPORT)
- #pragma omp critical (MagickCore_AdaptiveSharpenImageChannel)
+ #pragma omp critical (MagickCore_AdaptiveSharpenImage)
#endif
proceed=SetImageProgress(image,AdaptiveSharpenImageTag,progress++,
image->rows);
@@ -773,15 +738,11 @@
%
% Image *BlurImage(const Image *image,const double radius,
% const double sigma,ExceptionInfo *exception)
-% Image *BlurImageChannel(const Image *image,const ChannelType channel,
-% const double radius,const double sigma,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o image: the image.
%
-% o channel: the channel type.
-%
% o radius: the radius of the Gaussian, in pixels, not counting the center
% pixel.
%
@@ -791,16 +752,6 @@
%
*/
-MagickExport Image *BlurImage(const Image *image,const double radius,
- const double sigma,ExceptionInfo *exception)
-{
- Image
- *blur_image;
-
- blur_image=BlurImageChannel(image,DefaultChannels,radius,sigma,exception);
- return(blur_image);
-}
-
static double *GetBlurKernel(const size_t width,const double sigma)
{
double
@@ -836,9 +787,8 @@
return(kernel);
}
-MagickExport Image *BlurImageChannel(const Image *image,
- const ChannelType channel,const double radius,const double sigma,
- ExceptionInfo *exception)
+MagickExport Image *BlurImage(const Image *image,const double radius,
+ const double sigma,ExceptionInfo *exception)
{
#define BlurImageTag "Blur/Image"
@@ -973,7 +923,8 @@
pixel=bias;
k=kernel;
kernel_pixels=p;
- if (((GetPixelAlphaTraits(image) & ActivePixelTrait) == 0) || (image->matte == MagickFalse))
+ if (((GetPixelAlphaTraits(image) & ActivePixelTrait) == 0) ||
+ (image->matte == MagickFalse))
{
for (i=0; i < (ssize_t) width; i++)
{
@@ -1061,7 +1012,7 @@
proceed;
#if defined(MAGICKCORE_OPENMP_SUPPORT)
- #pragma omp critical (MagickCore_BlurImageChannel)
+ #pragma omp critical (MagickCore_BlurImage)
#endif
proceed=SetImageProgress(image,BlurImageTag,progress++,blur_image->rows+
blur_image->columns);
@@ -1117,7 +1068,8 @@
pixel=bias;
k=kernel;
kernel_pixels=p;
- if (((GetPixelAlphaTraits(image) & ActivePixelTrait) == 0) || (blur_image->matte == MagickFalse))
+ if (((GetPixelAlphaTraits(image) & ActivePixelTrait) == 0) ||
+ (blur_image->matte == MagickFalse))
{
for (i=0; i < (ssize_t) width; i++)
{
@@ -1205,7 +1157,7 @@
proceed;
#if defined(MAGICKCORE_OPENMP_SUPPORT)
- #pragma omp critical (MagickCore_BlurImageChannel)
+ #pragma omp critical (MagickCore_BlurImage)
#endif
proceed=SetImageProgress(blur_image,BlurImageTag,progress++,
blur_image->rows+blur_image->columns);
@@ -1239,15 +1191,10 @@
%
% Image *ConvolveImage(const Image *image,const size_t order,
% const double *kernel,ExceptionInfo *exception)
-% Image *ConvolveImageChannel(const Image *image,const ChannelType channel,
-% const size_t order,const double *kernel,ExceptionInfo *exception)
-%
% A description of each parameter follows:
%
% o image: the image.
%
-% o channel: the channel type.
-%
% o order: the number of columns and rows in the filter kernel.
%
% o kernel: An array of double representing the convolution kernel.
@@ -1255,22 +1202,9 @@
% o exception: return any errors or warnings in this structure.
%
*/
-
MagickExport Image *ConvolveImage(const Image *image,const size_t order,
const double *kernel,ExceptionInfo *exception)
{
- Image
- *convolve_image;
-
- convolve_image=ConvolveImageChannel(image,DefaultChannels,order,kernel,
- exception);
- return(convolve_image);
-}
-
-MagickExport Image *ConvolveImageChannel(const Image *image,
- const ChannelType channel,const size_t order,const double *kernel,
- ExceptionInfo *exception)
-{
#define ConvolveImageTag "Convolve/Image"
CacheView
@@ -1541,7 +1475,7 @@
proceed;
#if defined(MAGICKCORE_OPENMP_SUPPORT)
- #pragma omp critical (MagickCore_ConvolveImageChannel)
+ #pragma omp critical (MagickCore_ConvolveImage)
#endif
proceed=SetImageProgress(image,ConvolveImageTag,progress++,image->rows);
if (proceed == MagickFalse)
@@ -2029,33 +1963,18 @@
%
% Image *FilterImage(const Image *image,const KernelInfo *kernel,
% ExceptionInfo *exception)
-% Image *FilterImageChannel(const Image *image,const ChannelType channel,
-% const KernelInfo *kernel,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o image: the image.
%
-% o channel: the channel type.
-%
% o kernel: the filtering kernel.
%
% o exception: return any errors or warnings in this structure.
%
*/
-
-MagickExport Image *FilterImage(const Image *image,const KernelInfo *kernel,
- ExceptionInfo *exception)
-{
- Image
- *filter_image;
-
- filter_image=FilterImageChannel(image,DefaultChannels,kernel,exception);
- return(filter_image);
-}
-
-MagickExport Image *FilterImageChannel(const Image *image,
- const ChannelType channel,const KernelInfo *kernel,ExceptionInfo *exception)
+MagickExport Image *FilterImage(const Image *image,
+ const KernelInfo *kernel,ExceptionInfo *exception)
{
#define FilterImageTag "Filter/Image"
@@ -2307,7 +2226,7 @@
proceed;
#if defined(MAGICKCORE_OPENMP_SUPPORT)
- #pragma omp critical (MagickCore_FilterImageChannel)
+ #pragma omp critical (MagickCore_FilterImage)
#endif
proceed=SetImageProgress(image,FilterImageTag,progress++,image->rows);
if (proceed == MagickFalse)
@@ -2342,16 +2261,11 @@
%
% Image *GaussianBlurImage(const Image *image,onst double radius,
% const double sigma,ExceptionInfo *exception)
-% Image *GaussianBlurImageChannel(const Image *image,
-% const ChannelType channel,const double radius,const double sigma,
-% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o image: the image.
%
-% o channel: the channel type.
-%
% o radius: the radius of the Gaussian, in pixels, not counting the center
% pixel.
%
@@ -2360,21 +2274,8 @@
% o exception: return any errors or warnings in this structure.
%
*/
-
-MagickExport Image *GaussianBlurImage(const Image *image,const double radius,
- const double sigma,ExceptionInfo *exception)
-{
- Image
- *blur_image;
-
- blur_image=GaussianBlurImageChannel(image,DefaultChannels,radius,sigma,
- exception);
- return(blur_image);
-}
-
-MagickExport Image *GaussianBlurImageChannel(const Image *image,
- const ChannelType channel,const double radius,const double sigma,
- ExceptionInfo *exception)
+MagickExport Image *GaussianBlurImage(const Image *image,
+ const double radius,const double sigma,ExceptionInfo *exception)
{
double
*kernel;
@@ -2411,7 +2312,7 @@
kernel[i++]=(double) (exp(-((double) u*u+v*v)/(2.0*MagickSigma*
MagickSigma))/(2.0*MagickPI*MagickSigma*MagickSigma));
}
- blur_image=ConvolveImageChannel(image,channel,width,kernel,exception);
+ blur_image=ConvolveImage(image,width,kernel,exception);
kernel=(double *) RelinquishMagickMemory(kernel);
return(blur_image);
}
@@ -2439,17 +2340,11 @@
%
% Image *MotionBlurImage(const Image *image,const double radius,
% const double sigma,const double angle,ExceptionInfo *exception)
-% Image *MotionBlurImageChannel(const Image *image,const ChannelType channel,
-% const double radius,const double sigma,const double angle,
-% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o image: the image.
%
-% o channel: the channel type.
-%
-% o radius: the radius of the Gaussian, in pixels, not counting the center
% o radius: the radius of the Gaussian, in pixels, not counting
% the center pixel.
%
@@ -2489,20 +2384,9 @@
return(kernel);
}
-MagickExport Image *MotionBlurImage(const Image *image,const double radius,
- const double sigma,const double angle,ExceptionInfo *exception)
-{
- Image
- *motion_blur;
-
- motion_blur=MotionBlurImageChannel(image,DefaultChannels,radius,sigma,angle,
- exception);
- return(motion_blur);
-}
-
-MagickExport Image *MotionBlurImageChannel(const Image *image,
- const ChannelType channel,const double radius,const double sigma,
- const double angle,ExceptionInfo *exception)
+MagickExport Image *MotionBlurImage(const Image *image,
+ const double radius,const double sigma,const double angle,
+ ExceptionInfo *exception)
{
CacheView
*blur_view,
@@ -2700,7 +2584,7 @@
proceed;
#if defined(MAGICKCORE_OPENMP_SUPPORT)
- #pragma omp critical (MagickCore_MotionBlurImageChannel)
+ #pragma omp critical (MagickCore_MotionBlurImage)
#endif
proceed=SetImageProgress(image,BlurImageTag,progress++,image->rows);
if (proceed == MagickFalse)
@@ -3257,33 +3141,18 @@
%
% Image *RadialBlurImage(const Image *image,const double angle,
% ExceptionInfo *exception)
-% Image *RadialBlurImageChannel(const Image *image,const ChannelType channel,
-% const double angle,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o image: the image.
%
-% o channel: the channel type.
-%
% o angle: the angle of the radial blur.
%
% o exception: return any errors or warnings in this structure.
%
*/
-
-MagickExport Image *RadialBlurImage(const Image *image,const double angle,
- ExceptionInfo *exception)
-{
- Image
- *blur_image;
-
- blur_image=RadialBlurImageChannel(image,DefaultChannels,angle,exception);
- return(blur_image);
-}
-
-MagickExport Image *RadialBlurImageChannel(const Image *image,
- const ChannelType channel,const double angle,ExceptionInfo *exception)
+MagickExport Image *RadialBlurImage(const Image *image,
+ const double angle,ExceptionInfo *exception)
{
CacheView
*blur_view,
@@ -3513,7 +3382,7 @@
proceed;
#if defined(MAGICKCORE_OPENMP_SUPPORT)
- #pragma omp critical (MagickCore_RadialBlurImageChannel)
+ #pragma omp critical (MagickCore_RadialBlurImage)
#endif
proceed=SetImageProgress(image,BlurImageTag,progress++,image->rows);
if (proceed == MagickFalse)
@@ -3548,16 +3417,11 @@
%
% Image *SelectiveBlurImage(const Image *image,const double radius,
% const double sigma,const double threshold,ExceptionInfo *exception)
-% Image *SelectiveBlurImageChannel(const Image *image,
-% const ChannelType channel,const double radius,const double sigma,
-% const double threshold,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o image: the image.
%
-% o channel: the channel type.
-%
% o radius: the radius of the Gaussian, in pixels, not counting the center
% pixel.
%
@@ -3569,21 +3433,9 @@
% o exception: return any errors or warnings in this structure.
%
*/
-
-MagickExport Image *SelectiveBlurImage(const Image *image,const double radius,
- const double sigma,const double threshold,ExceptionInfo *exception)
-{
- Image
- *blur_image;
-
- blur_image=SelectiveBlurImageChannel(image,DefaultChannels,radius,sigma,
- threshold,exception);
- return(blur_image);
-}
-
-MagickExport Image *SelectiveBlurImageChannel(const Image *image,
- const ChannelType channel,const double radius,const double sigma,
- const double threshold,ExceptionInfo *exception)
+MagickExport Image *SelectiveBlurImage(const Image *image,
+ const double radius,const double sigma,const double threshold,
+ ExceptionInfo *exception)
{
#define SelectiveBlurImageTag "SelectiveBlur/Image"
@@ -3896,7 +3748,7 @@
proceed;
#if defined(MAGICKCORE_OPENMP_SUPPORT)
- #pragma omp critical (MagickCore_SelectiveBlurImageChannel)
+ #pragma omp critical (MagickCore_SelectiveBlurImage)
#endif
proceed=SetImageProgress(image,SelectiveBlurImageTag,progress++,
image->rows);
@@ -4143,15 +3995,11 @@
%
% Image *SharpenImage(const Image *image,const double radius,
% const double sigma,ExceptionInfo *exception)
-% Image *SharpenImageChannel(const Image *image,const ChannelType channel,
-% const double radius,const double sigma,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o image: the image.
%
-% o channel: the channel type.
-%
% o radius: the radius of the Gaussian, in pixels, not counting the center
% pixel.
%
@@ -4160,21 +4008,9 @@
% o exception: return any errors or warnings in this structure.
%
*/
-
MagickExport Image *SharpenImage(const Image *image,const double radius,
const double sigma,ExceptionInfo *exception)
{
- Image
- *sharp_image;
-
- sharp_image=SharpenImageChannel(image,DefaultChannels,radius,sigma,exception);
- return(sharp_image);
-}
-
-MagickExport Image *SharpenImageChannel(const Image *image,
- const ChannelType channel,const double radius,const double sigma,
- ExceptionInfo *exception)
-{
double
*kernel,
normalize;
@@ -4217,7 +4053,7 @@
}
}
kernel[i/2]=(double) ((-2.0)*normalize);
- sharp_image=ConvolveImageChannel(image,channel,width,kernel,exception);
+ sharp_image=ConvolveImage(image,width,kernel,exception);
kernel=(double *) RelinquishMagickMemory(kernel);
return(sharp_image);
}
@@ -4384,16 +4220,11 @@
%
% Image *StatisticImage(const Image *image,const StatisticType type,
% const size_t width,const size_t height,ExceptionInfo *exception)
-% Image *StatisticImageChannel(const Image *image,
-% const ChannelType channel,const StatisticType type,
-% const size_t width,const size_t height,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o image: the image.
%
-% o channel: the image channel.
-%
% o type: the statistic type (median, mode, etc.).
%
% o width: the width of the pixel neighborhood.
@@ -5010,18 +4841,6 @@
MagickExport Image *StatisticImage(const Image *image,const StatisticType type,
const size_t width,const size_t height,ExceptionInfo *exception)
{
- Image
- *statistic_image;
-
- statistic_image=StatisticImageChannel(image,DefaultChannels,type,width,
- height,exception);
- return(statistic_image);
-}
-
-MagickExport Image *StatisticImageChannel(const Image *image,
- const ChannelType channel,const StatisticType type,const size_t width,
- const size_t height,ExceptionInfo *exception)
-{
#define StatisticWidth \
(width == 0 ? GetOptimalKernelWidth2D((double) width,0.5) : width)
#define StatisticHeight \
@@ -5243,16 +5062,11 @@
% Image *UnsharpMaskImage(const Image *image,const double radius,
% const double sigma,const double amount,const double threshold,
% ExceptionInfo *exception)
-% Image *UnsharpMaskImageChannel(const Image *image,
-% const ChannelType channel,const double radius,const double sigma,
-% const double amount,const double threshold,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o image: the image.
%
-% o channel: the channel type.
-%
% o radius: the radius of the Gaussian, in pixels, not counting the center
% pixel.
%
@@ -5266,22 +5080,9 @@
% o exception: return any errors or warnings in this structure.
%
*/
-
-MagickExport Image *UnsharpMaskImage(const Image *image,const double radius,
- const double sigma,const double amount,const double threshold,
- ExceptionInfo *exception)
-{
- Image
- *sharp_image;
-
- sharp_image=UnsharpMaskImageChannel(image,DefaultChannels,radius,sigma,amount,
- threshold,exception);
- return(sharp_image);
-}
-
-MagickExport Image *UnsharpMaskImageChannel(const Image *image,
- const ChannelType channel,const double radius,const double sigma,
- const double amount,const double threshold,ExceptionInfo *exception)
+MagickExport Image *UnsharpMaskImage(const Image *image,
+ const double radius,const double sigma,const double amount,
+ const double threshold,ExceptionInfo *exception)
{
#define SharpenImageTag "Sharpen/Image"
@@ -5312,7 +5113,7 @@
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
assert(exception != (ExceptionInfo *) NULL);
- unsharp_image=BlurImageChannel(image,channel,radius,sigma,exception);
+ unsharp_image=BlurImage(image,radius,sigma,exception);
if (unsharp_image == (Image *) NULL)
return((Image *) NULL);
quantum_threshold=(MagickRealType) QuantumRange*threshold;
@@ -5429,7 +5230,7 @@
proceed;
#if defined(MAGICKCORE_OPENMP_SUPPORT)
- #pragma omp critical (MagickCore_UnsharpMaskImageChannel)
+ #pragma omp critical (MagickCore_UnsharpMaskImage)
#endif
proceed=SetImageProgress(image,SharpenImageTag,progress++,image->rows);
if (proceed == MagickFalse)
diff --git a/MagickCore/effect.h b/MagickCore/effect.h
index d41ce88..d76cc7f 100644
--- a/MagickCore/effect.h
+++ b/MagickCore/effect.h
@@ -73,53 +73,29 @@
extern MagickExport Image
*AdaptiveBlurImage(const Image *,const double,const double,ExceptionInfo *),
- *AdaptiveBlurImageChannel(const Image *,const ChannelType,const double,
- const double,ExceptionInfo *),
*AdaptiveSharpenImage(const Image *,const double,const double,
ExceptionInfo *),
- *AdaptiveSharpenImageChannel(const Image *,const ChannelType,const double,
- const double,ExceptionInfo *),
*BlurImage(const Image *,const double,const double,ExceptionInfo *),
- *BlurImageChannel(const Image *,const ChannelType,const double,const double,
- ExceptionInfo *),
*ConvolveImage(const Image *,const size_t,const double *,ExceptionInfo *),
- *ConvolveImageChannel(const Image *,const ChannelType,const size_t,
- const double *,ExceptionInfo *),
*DespeckleImage(const Image *,ExceptionInfo *),
*EdgeImage(const Image *,const double,ExceptionInfo *),
*EmbossImage(const Image *,const double,const double,ExceptionInfo *),
*FilterImage(const Image *,const KernelInfo *,ExceptionInfo *),
- *FilterImageChannel(const Image *,const ChannelType,const KernelInfo *,
- ExceptionInfo *),
*GaussianBlurImage(const Image *,const double,const double,ExceptionInfo *),
- *GaussianBlurImageChannel(const Image *,const ChannelType,const double,
- const double,ExceptionInfo *),
*MotionBlurImage(const Image *,const double,const double,const double,
ExceptionInfo *),
- *MotionBlurImageChannel(const Image *,const ChannelType,const double,
- const double,const double,ExceptionInfo *),
*PreviewImage(const Image *,const PreviewType,ExceptionInfo *),
*RadialBlurImage(const Image *,const double,ExceptionInfo *),
- *RadialBlurImageChannel(const Image *,const ChannelType,const double,
- ExceptionInfo *),
*SelectiveBlurImage(const Image *,const double,const double,const double,
ExceptionInfo *),
- *SelectiveBlurImageChannel(const Image *,const ChannelType,const double,
- const double,const double,ExceptionInfo *),
*ShadeImage(const Image *,const MagickBooleanType,const double,const double,
ExceptionInfo *),
*SharpenImage(const Image *,const double,const double,ExceptionInfo *),
- *SharpenImageChannel(const Image *,const ChannelType,const double,
- const double,ExceptionInfo *),
*SpreadImage(const Image *,const double,ExceptionInfo *),
*StatisticImage(const Image *,const StatisticType,const size_t,const size_t,
ExceptionInfo *),
- *StatisticImageChannel(const Image *,const ChannelType,const StatisticType,
- const size_t,const size_t,ExceptionInfo *),
*UnsharpMaskImage(const Image *,const double,const double,const double,
- const double,ExceptionInfo *),
- *UnsharpMaskImageChannel(const Image *,const ChannelType,const double,
- const double,const double,const double,ExceptionInfo *);
+ const double,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
diff --git a/MagickCore/fx.c b/MagickCore/fx.c
index 98e53d4..923495b 100644
--- a/MagickCore/fx.c
+++ b/MagickCore/fx.c
@@ -4188,7 +4188,9 @@
}
}
border_view=DestroyCacheView(border_view);
- shadow_image=BlurImageChannel(border_image,AlphaChannel,0.0,sigma,exception);
+ PushPixelComponentMap(border_image,AlphaChannel);
+ shadow_image=BlurImage(border_image,0.0,sigma,exception);
+ PopPixelComponentMap(border_image);
border_image=DestroyImage(border_image);
if (shadow_image == (Image *) NULL)
return((Image *) NULL);
diff --git a/MagickCore/image.c b/MagickCore/image.c
index 97a8cc7..fd88b44 100644
--- a/MagickCore/image.c
+++ b/MagickCore/image.c
@@ -3602,7 +3602,9 @@
status=TransformImageColorspace(image,RGBColorspace);
if (image->matte == MagickFalse)
(void) SetImageAlphaChannel(image,OpaqueAlphaChannel);
- (void) BilevelImageChannel(image,AlphaChannel,(double) QuantumRange/2.0);
+ PushPixelComponentMap(image,AlphaChannel);
+ (void) BilevelImage(image,(double) QuantumRange/2.0);
+ PopPixelComponentMap(image);
quantize_info=AcquireQuantizeInfo(image_info);
status=QuantizeImage(quantize_info,image);
quantize_info=DestroyQuantizeInfo(quantize_info);
diff --git a/MagickCore/methods.h b/MagickCore/methods.h
index 03de5dc..6fcfa7a 100644
--- a/MagickCore/methods.h
+++ b/MagickCore/methods.h
@@ -80,10 +80,10 @@
#define AcquireUniqueFilename PrependMagickMethod(AcquireUniqueFilename)
#define AcquireUniqueFileResource PrependMagickMethod(AcquireUniqueFileResource)
#define AcquireUniqueSymbolicLink PrependMagickMethod(AcquireUniqueSymbolicLink)
-#define AdaptiveBlurImageChannel PrependMagickMethod(AdaptiveBlurImageChannel)
+#define AdaptiveBlurImage PrependMagickMethod(AdaptiveBlurImage)
#define AdaptiveBlurImage PrependMagickMethod(AdaptiveBlurImage)
#define AdaptiveResizeImage PrependMagickMethod(AdaptiveResizeImage)
-#define AdaptiveSharpenImageChannel PrependMagickMethod(AdaptiveSharpenImageChannel)
+#define AdaptiveSharpenImage PrependMagickMethod(AdaptiveSharpenImage)
#define AdaptiveSharpenImage PrependMagickMethod(AdaptiveSharpenImage)
#define AdaptiveThresholdImage PrependMagickMethod(AdaptiveThresholdImage)
#define AddChildToXMLTree PrependMagickMethod(AddChildToXMLTree)
@@ -118,14 +118,14 @@
#define AverageImages PrependMagickMethod(AverageImages)
#define Base64Decode PrependMagickMethod(Base64Decode)
#define Base64Encode PrependMagickMethod(Base64Encode)
-#define BilevelImageChannel PrependMagickMethod(BilevelImageChannel)
#define BilevelImage PrependMagickMethod(BilevelImage)
-#define BlackThresholdImageChannel PrependMagickMethod(BlackThresholdImageChannel)
+#define BilevelImage PrependMagickMethod(BilevelImage)
+#define BlackThresholdImage PrependMagickMethod(BlackThresholdImage)
#define BlackThresholdImage PrependMagickMethod(BlackThresholdImage)
#define BlobToFile PrependMagickMethod(BlobToFile)
#define BlobToImage PrependMagickMethod(BlobToImage)
#define BlueShiftImage PrependMagickMethod(BlueShiftImage)
-#define BlurImageChannel PrependMagickMethod(BlurImageChannel)
+#define BlurImage PrependMagickMethod(BlurImage)
#define BlurImage PrependMagickMethod(BlurImage)
#define BorderImage PrependMagickMethod(BorderImage)
#define BrightnessContrastImage PrependMagickMethod(BrightnessContrastImage)
@@ -140,7 +140,7 @@
#define CharcoalImage PrependMagickMethod(CharcoalImage)
#define ChopImage PrependMagickMethod(ChopImage)
#define ChopPathComponents PrependMagickMethod(ChopPathComponents)
-#define ClampImageChannel PrependMagickMethod(ClampImageChannel)
+#define ClampImage PrependMagickMethod(ClampImage)
#define ClampImage PrependMagickMethod(ClampImage)
#define ClearLinkedList PrependMagickMethod(ClearLinkedList)
#define ClearMagickException PrependMagickMethod(ClearMagickException)
@@ -189,7 +189,7 @@
#define CompareSplayTreeStringInfo PrependMagickMethod(CompareSplayTreeStringInfo)
#define CompareSplayTreeString PrependMagickMethod(CompareSplayTreeString)
#define CompareStringInfo PrependMagickMethod(CompareStringInfo)
-#define CompositeImageChannel PrependMagickMethod(CompositeImageChannel)
+#define CompositeImage PrependMagickMethod(CompositeImage)
#define CompositeImage PrependMagickMethod(CompositeImage)
#define CompositeLayers PrependMagickMethod(CompositeLayers)
#define CompressImageColormap PrependMagickMethod(CompressImageColormap)
@@ -215,7 +215,7 @@
#define ConvertRGBToHSB PrependMagickMethod(ConvertRGBToHSB)
#define ConvertRGBToHSL PrependMagickMethod(ConvertRGBToHSL)
#define ConvertRGBToHWB PrependMagickMethod(ConvertRGBToHWB)
-#define ConvolveImageChannel PrependMagickMethod(ConvolveImageChannel)
+#define ConvolveImage PrependMagickMethod(ConvolveImage)
#define ConvolveImage PrependMagickMethod(ConvolveImage)
#define CopyMagickMemory PrependMagickMethod(CopyMagickMemory)
#define CopyMagickString PrependMagickMethod(CopyMagickString)
@@ -323,7 +323,7 @@
#define FileToImage PrependMagickMethod(FileToImage)
#define FileToStringInfo PrependMagickMethod(FileToStringInfo)
#define FileToString PrependMagickMethod(FileToString)
-#define FilterImageChannel PrependMagickMethod(FilterImageChannel)
+#define FilterImage PrependMagickMethod(FilterImage)
#define FilterImage PrependMagickMethod(FilterImage)
#define FinalizeSignature PrependMagickMethod(FinalizeSignature)
#define FlattenImages PrependMagickMethod(FlattenImages)
@@ -355,7 +355,7 @@
#define FxPreprocessExpression PrependMagickMethod(FxPreprocessExpression)
#define GammaImage PrependMagickMethod(GammaImage)
#define GammaImage PrependMagickMethod(GammaImage)
-#define GaussianBlurImageChannel PrependMagickMethod(GaussianBlurImageChannel)
+#define GaussianBlurImage PrependMagickMethod(GaussianBlurImage)
#define GaussianBlurImage PrependMagickMethod(GaussianBlurImage)
#define GaussJordanElimination PrependMagickMethod(GaussJordanElimination)
#define GenerateDifferentialNoise PrependMagickMethod(GenerateDifferentialNoise)
@@ -760,7 +760,7 @@
#define MorphImages PrependMagickMethod(MorphImages)
#define MorphologyImage PrependMagickMethod(MorphologyImage)
#define MosaicImages PrependMagickMethod(MosaicImages)
-#define MotionBlurImageChannel PrependMagickMethod(MotionBlurImageChannel)
+#define MotionBlurImage PrependMagickMethod(MotionBlurImage)
#define MotionBlurImage PrependMagickMethod(MotionBlurImage)
#define MSBOrderLong PrependMagickMethod(MSBOrderLong)
#define MSBOrderShort PrependMagickMethod(MSBOrderShort)
@@ -841,13 +841,13 @@
#define QueueAuthenticNexus PrependMagickMethod(QueueAuthenticNexus)
#define QueueAuthenticPixels PrependMagickMethod(QueueAuthenticPixels)
#define QueueCacheViewAuthenticPixels PrependMagickMethod(QueueCacheViewAuthenticPixels)
-#define RadialBlurImageChannel PrependMagickMethod(RadialBlurImageChannel)
+#define RadialBlurImage PrependMagickMethod(RadialBlurImage)
#define RadialBlurImage PrependMagickMethod(RadialBlurImage)
#define RaiseImage PrependMagickMethod(RaiseImage)
#define RandomChannelThresholdImage PrependMagickMethod(RandomChannelThresholdImage)
#define RandomComponentGenesis PrependMagickMethod(RandomComponentGenesis)
#define RandomComponentTerminus PrependMagickMethod(RandomComponentTerminus)
-#define RandomThresholdImageChannel PrependMagickMethod(RandomThresholdImageChannel)
+#define RandomThresholdImage PrependMagickMethod(RandomThresholdImage)
#define RandomThresholdImage PrependMagickMethod(RandomThresholdImage)
#define ReacquireMemory PrependMagickMethod(ReacquireMemory)
#define ReadBlobByte PrependMagickMethod(ReadBlobByte)
@@ -1038,7 +1038,7 @@
#define SeedPseudoRandomGenerator PrependMagickMethod(SeedPseudoRandomGenerator)
#define SeekBlob PrependMagickMethod(SeekBlob)
#define SegmentImage PrependMagickMethod(SegmentImage)
-#define SelectiveBlurImageChannel PrependMagickMethod(SelectiveBlurImageChannel)
+#define SelectiveBlurImage PrependMagickMethod(SelectiveBlurImage)
#define SelectiveBlurImage PrependMagickMethod(SelectiveBlurImage)
#define SemaphoreComponentGenesis PrependMagickMethod(SemaphoreComponentGenesis)
#define SemaphoreComponentTerminus PrependMagickMethod(SemaphoreComponentTerminus)
@@ -1123,7 +1123,7 @@
#define SetXMLTreeContent PrependMagickMethod(SetXMLTreeContent)
#define ShadeImage PrependMagickMethod(ShadeImage)
#define ShadowImage PrependMagickMethod(ShadowImage)
-#define SharpenImageChannel PrependMagickMethod(SharpenImageChannel)
+#define SharpenImage PrependMagickMethod(SharpenImage)
#define SharpenImage PrependMagickMethod(SharpenImage)
#define ShaveImage PrependMagickMethod(ShaveImage)
#define ShearImage PrependMagickMethod(ShearImage)
@@ -1308,14 +1308,14 @@
#define UnregisterXWDImage PrependMagickMethod(UnregisterXWDImage)
#define UnregisterYCBCRImage PrependMagickMethod(UnregisterYCBCRImage)
#define UnregisterYUVImage PrependMagickMethod(UnregisterYUVImage)
-#define UnsharpMaskImageChannel PrependMagickMethod(UnsharpMaskImageChannel)
+#define UnsharpMaskImage PrependMagickMethod(UnsharpMaskImage)
#define UnsharpMaskImage PrependMagickMethod(UnsharpMaskImage)
#define UnshiftImageList PrependMagickMethod(UnshiftImageList)
#define UpdateSignature PrependMagickMethod(UpdateSignature)
#define ValidateColormapIndex PrependMagickMethod(ValidateColormapIndex)
#define VignetteImage PrependMagickMethod(VignetteImage)
#define WaveImage PrependMagickMethod(WaveImage)
-#define WhiteThresholdImageChannel PrependMagickMethod(WhiteThresholdImageChannel)
+#define WhiteThresholdImage PrependMagickMethod(WhiteThresholdImage)
#define WhiteThresholdImage PrependMagickMethod(WhiteThresholdImage)
#define WriteBlobByte PrependMagickMethod(WriteBlobByte)
#define WriteBlobFloat PrependMagickMethod(WriteBlobFloat)
diff --git a/MagickCore/morphology-private.h b/MagickCore/morphology-private.h
index 78bc9e7..8e45ca4 100644
--- a/MagickCore/morphology-private.h
+++ b/MagickCore/morphology-private.h
@@ -29,9 +29,8 @@
#include <MagickCore/morphology.h>
extern MagickExport Image
- *MorphologyApply(const Image *,const ChannelType,const MorphologyMethod,
- const ssize_t,const KernelInfo *,const CompositeOperator,const double,
- ExceptionInfo *);
+ *MorphologyApply(const Image *,const MorphologyMethod,const ssize_t,
+ const KernelInfo *,const CompositeOperator,const double,ExceptionInfo *);
extern MagickExport void
ScaleKernelInfo(KernelInfo *,const double,const GeometryFlags),
diff --git a/MagickCore/morphology.c b/MagickCore/morphology.c
index 00ca774..e12f0fb 100644
--- a/MagickCore/morphology.c
+++ b/MagickCore/morphology.c
@@ -2443,12 +2443,12 @@
% MorphologyApply() applies a morphological method, multiple times using
% a list of multiple kernels.
%
-% It is basically equivalent to as MorphologyImageChannel() (see below) but
+% It is basically equivalent to as MorphologyImage() (see below) but
% without any user controls. This allows internel programs to use this
% function, to actually perform a specific task without possible interference
% by any API user supplied settings.
%
-% It is MorphologyImageChannel() task to extract any such user controls, and
+% It is MorphologyImage() task to extract any such user controls, and
% pass them to this function for processing.
%
% More specifically kernels are not normalized/scaled/blended by the
@@ -2459,9 +2459,9 @@
% The format of the MorphologyApply method is:
%
% Image *MorphologyApply(const Image *image,MorphologyMethod method,
-% const ChannelType channel, const ssize_t iterations,
-% const KernelInfo *kernel, const CompositeMethod compose,
-% const double bias, ExceptionInfo *exception)
+% const ssize_t iterations,const KernelInfo *kernel,
+% const CompositeMethod compose,const double bias,
+% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -2469,10 +2469,6 @@
%
% o method: the morphology method to be applied.
%
-% o channel: the channels to which the operations are applied
-% The channel 'sync' flag determines if 'alpha weighting' is
-% applied for convolution style operations.
-%
% o iterations: apply the operation this many times (or no change).
% A value of -1 means loop until no change found.
% How this is applied may depend on the morphology method.
@@ -2498,9 +2494,9 @@
** It returns the number of pixels that changed between the images
** for result convergence determination.
*/
-static ssize_t MorphologyPrimitive(const Image *image, Image *morphology_image,
- const MorphologyMethod method, const ChannelType channel,
- const KernelInfo *kernel,const double bias,ExceptionInfo *exception)
+static ssize_t MorphologyPrimitive(const Image *image,Image *morphology_image,
+ const MorphologyMethod method,const KernelInfo *kernel,const double bias,
+ ExceptionInfo *exception)
{
#define MorphologyTag "Morphology/Image"
@@ -2657,8 +2653,8 @@
*/
k = &kernel->values[ kernel->height-1 ];
k_pixels = p;
- if ( ((channel & SyncChannels) == 0 ) ||
- (image->matte == MagickFalse) )
+ if ( (image->sync == MagickFalse) ||
+ (image->matte == MagickFalse) )
{ /* No 'Sync' involved.
** Convolution is simple greyscale channel operation
*/
@@ -2882,8 +2878,8 @@
*/
k = &kernel->values[ kernel->width*kernel->height-1 ];
k_pixels = p;
- if ( ((channel & SyncChannels) == 0 ) ||
- (image->matte == MagickFalse) )
+ if ( (image->sync == MagickFalse) ||
+ (image->matte == MagickFalse) )
{ /* No 'Sync' involved.
** Convolution is simple greyscale channel operation
*/
@@ -3279,8 +3275,8 @@
** of multi-threaded, parellel processing.
*/
static ssize_t MorphologyPrimitiveDirect(Image *image,
- const MorphologyMethod method, const ChannelType channel,
- const KernelInfo *kernel,ExceptionInfo *exception)
+ const MorphologyMethod method,const KernelInfo *kernel,
+ ExceptionInfo *exception)
{
CacheView
*auth_view,
@@ -3713,10 +3709,10 @@
** Basically this provides the complex grue between the requested morphology
** method and raw low-level implementation (above).
*/
-MagickExport Image *MorphologyApply(const Image *image, const ChannelType
- channel,const MorphologyMethod method, const ssize_t iterations,
- const KernelInfo *kernel, const CompositeOperator compose,
- const double bias, ExceptionInfo *exception)
+MagickExport Image *MorphologyApply(const Image *image,
+ const MorphologyMethod method, const ssize_t iterations,
+ const KernelInfo *kernel, const CompositeOperator compose,const double bias,
+ ExceptionInfo *exception)
{
CompositeOperator
curr_compose;
@@ -3838,7 +3834,7 @@
}
changed = MorphologyPrimitiveDirect(rslt_image, method,
- channel, kernel, exception);
+ kernel, exception);
if ( verbose == MagickTrue )
(void) (void) FormatLocaleFile(stderr,
@@ -3852,8 +3848,7 @@
if ( method == VoronoiMorphology ) {
/* Preserve the alpha channel of input image - but turned off */
(void) SetImageAlphaChannel(rslt_image, DeactivateAlphaChannel);
- (void) CompositeImageChannel(rslt_image, DefaultChannels,
- CopyOpacityCompositeOp, image, 0, 0);
+ (void) CompositeImage(rslt_image, CopyOpacityCompositeOp, image, 0, 0);
(void) SetImageAlphaChannel(rslt_image, DeactivateAlphaChannel);
}
goto exit_cleanup;
@@ -4023,7 +4018,7 @@
/* APPLY THE MORPHOLOGICAL PRIMITIVE (curr -> work) */
count++;
changed = MorphologyPrimitive(curr_image, work_image, primitive,
- channel, this_kernel, bias, exception);
+ this_kernel, bias, exception);
if ( verbose == MagickTrue ) {
if ( kernel_loop > 1 )
@@ -4080,17 +4075,16 @@
if ( verbose == MagickTrue )
(void) FormatLocaleFile(stderr, "\n%s: Difference with original image",
CommandOptionToMnemonic(MagickMorphologyOptions, method) );
- (void) CompositeImageChannel(curr_image,
- (ChannelType) (channel & ~SyncChannels),
- DifferenceCompositeOp, image, 0, 0);
+ curr_image->sync=MagickFalse;
+ (void) CompositeImage(curr_image,DifferenceCompositeOp,image,0,0);
break;
case EdgeMorphology:
if ( verbose == MagickTrue )
(void) FormatLocaleFile(stderr, "\n%s: Difference of Dilate and Erode",
CommandOptionToMnemonic(MagickMorphologyOptions, method) );
- (void) CompositeImageChannel(curr_image,
- (ChannelType) (channel & ~SyncChannels),
- DifferenceCompositeOp, save_image, 0, 0);
+ curr_image->sync=MagickFalse;
+ (void) CompositeImage(curr_image,DifferenceCompositeOp,save_image,0,
+ 0);
save_image = DestroyImage(save_image); /* finished with save image */
break;
default:
@@ -4126,9 +4120,8 @@
if ( verbose == MagickTrue )
(void) FormatLocaleFile(stderr, " (compose \"%s\")",
CommandOptionToMnemonic(MagickComposeOptions, rslt_compose) );
- (void) CompositeImageChannel(rslt_image,
- (ChannelType) (channel & ~SyncChannels), rslt_compose,
- curr_image, 0, 0);
+ rslt_image->sync=MagickFalse;
+ (void) CompositeImage(rslt_image, rslt_compose, curr_image, 0, 0);
curr_image = DestroyImage(curr_image);
curr_image = (Image *) image; /* continue with original image */
}
@@ -4172,13 +4165,13 @@
% %
% %
% %
-% M o r p h o l o g y I m a g e C h a n n e l %
+% M o r p h o l o g y I m a g e %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% MorphologyImageChannel() applies a user supplied kernel to the image
+% MorphologyImage() applies a user supplied kernel to the image
% according to the given mophology method.
%
% This function applies any and all user defined settings before calling
@@ -4195,7 +4188,7 @@
% Image *MorphologyImage(const Image *image,MorphologyMethod method,
% const ssize_t iterations,KernelInfo *kernel,ExceptionInfo *exception)
%
-% Image *MorphologyImageChannel(const Image *image, const ChannelType
+% Image *MorphologyImage(const Image *image, const ChannelType
% channel,MorphologyMethod method,const ssize_t iterations,
% KernelInfo *kernel,ExceptionInfo *exception)
%
@@ -4210,18 +4203,15 @@
% How this is applied may depend on the morphology method.
% Typically this is a value of 1.
%
-% o channel: the channel type.
-%
% o kernel: An array of double representing the morphology kernel.
% Warning: kernel may be normalized for the Convolve method.
%
% o exception: return any errors or warnings in this structure.
%
*/
-
-MagickExport Image *MorphologyImageChannel(const Image *image,
- const ChannelType channel,const MorphologyMethod method,
- const ssize_t iterations,const KernelInfo *kernel,ExceptionInfo *exception)
+MagickExport Image *MorphologyImage(const Image *image,
+ const MorphologyMethod method,const ssize_t iterations,
+ const KernelInfo *kernel,ExceptionInfo *exception)
{
KernelInfo
*curr_kernel;
@@ -4275,26 +4265,14 @@
MagickComposeOptions,MagickFalse,artifact);
}
/* Apply the Morphology */
- morphology_image = MorphologyApply(image, channel, method, iterations,
- curr_kernel, compose, image->bias, exception);
+ morphology_image = MorphologyApply(image, method, iterations,
+ curr_kernel, compose, image->bias, exception);
/* Cleanup and Exit */
if ( curr_kernel != kernel )
curr_kernel=DestroyKernelInfo(curr_kernel);
return(morphology_image);
}
-
-MagickExport Image *MorphologyImage(const Image *image, const MorphologyMethod
- method, const ssize_t iterations,const KernelInfo *kernel, ExceptionInfo
- *exception)
-{
- Image
- *morphology_image;
-
- morphology_image=MorphologyImageChannel(image,DefaultChannels,method,
- iterations,kernel,exception);
- return(morphology_image);
-}
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/MagickCore/morphology.h b/MagickCore/morphology.h
index fc0e242..70652d0 100644
--- a/MagickCore/morphology.h
+++ b/MagickCore/morphology.h
@@ -133,9 +133,7 @@
extern MagickExport Image
*MorphologyImage(const Image *,const MorphologyMethod,const ssize_t,
- const KernelInfo *,ExceptionInfo *),
- *MorphologyImageChannel(const Image *,const ChannelType,
- const MorphologyMethod,const ssize_t,const KernelInfo *,ExceptionInfo *);
+ const KernelInfo *,ExceptionInfo *);
extern MagickExport void
ScaleGeometryKernelInfo(KernelInfo *,const char *),
diff --git a/MagickCore/threshold.c b/MagickCore/threshold.c
index da42061..1fffd59 100644
--- a/MagickCore/threshold.c
+++ b/MagickCore/threshold.c
@@ -321,36 +321,22 @@
% If the default channel setting is given the image is thresholded using just
% the gray 'intensity' of the image, rather than the individual channels.
%
-% The format of the BilevelImageChannel method is:
+% The format of the BilevelImage method is:
%
% MagickBooleanType BilevelImage(Image *image,const double threshold)
-% MagickBooleanType BilevelImageChannel(Image *image,
-% const ChannelType channel,const double threshold)
%
% A description of each parameter follows:
%
% o image: the image.
%
-% o channel: the channel type.
-%
% o threshold: define the threshold values.
%
% Aside: You can get the same results as operator using LevelImages()
% with the 'threshold' value for both the black_point and the white_point.
%
*/
-
-MagickExport MagickBooleanType BilevelImage(Image *image,const double threshold)
-{
- MagickBooleanType
- status;
-
- status=BilevelImageChannel(image,DefaultChannels,threshold);
- return(status);
-}
-
-MagickExport MagickBooleanType BilevelImageChannel(Image *image,
- const ChannelType channel,const double threshold)
+MagickExport MagickBooleanType BilevelImage(Image *image,
+ const double threshold)
{
#define ThresholdImageTag "Threshold/Image"
@@ -401,7 +387,7 @@
status=MagickFalse;
continue;
}
- if (channel == DefaultChannels)
+ if (image->sync != MagickFalse)
{
for (x=0; x < (ssize_t) image->columns; x++)
{
@@ -448,7 +434,7 @@
proceed;
#if defined(MAGICKCORE_OPENMP_SUPPORT)
- #pragma omp critical (MagickCore_BilevelImageChannel)
+ #pragma omp critical (MagickCore_BilevelImage)
#endif
proceed=SetImageProgress(image,ThresholdImageTag,progress++,
image->rows);
@@ -477,35 +463,20 @@
%
% The format of the BlackThresholdImage method is:
%
-% MagickBooleanType BlackThresholdImage(Image *image,const char *threshold)
-% MagickBooleanType BlackThresholdImageChannel(Image *image,
-% const ChannelType channel,const char *threshold,
-% ExceptionInfo *exception)
+% MagickBooleanType BlackThresholdImage(Image *image,
+% const char *threshold,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o image: the image.
%
-% o channel: the channel or channels to be thresholded.
-%
% o threshold: Define the threshold value.
%
% o exception: return any errors or warnings in this structure.
%
*/
MagickExport MagickBooleanType BlackThresholdImage(Image *image,
- const char *threshold)
-{
- MagickBooleanType
- status;
-
- status=BlackThresholdImageChannel(image,DefaultChannels,threshold,
- &image->exception);
- return(status);
-}
-
-MagickExport MagickBooleanType BlackThresholdImageChannel(Image *image,
- const ChannelType channel,const char *thresholds,ExceptionInfo *exception)
+ const char *thresholds,ExceptionInfo *exception)
{
#define ThresholdImageTag "Threshold/Image"
@@ -588,7 +559,7 @@
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- if (channel != DefaultChannels)
+ if (image->sync != MagickFalse)
{
if (GetPixelIntensity(image,q) < GetPixelInfoIntensity(&threshold))
{
@@ -628,7 +599,7 @@
proceed;
#if defined(MAGICKCORE_OPENMP_SUPPORT)
- #pragma omp critical (MagickCore_BlackThresholdImageChannel)
+ #pragma omp critical (MagickCore_BlackThresholdImage)
#endif
proceed=SetImageProgress(image,ThresholdImageTag,progress++,
image->rows);
@@ -653,18 +624,14 @@
%
% ClampImage() restricts the color range from 0 to the quantum depth.
%
-% The format of the ClampImageChannel method is:
+% The format of the ClampImage method is:
%
% MagickBooleanType ClampImage(Image *image)
-% MagickBooleanType ClampImageChannel(Image *image,
-% const ChannelType channel)
%
% A description of each parameter follows:
%
% o image: the image.
%
-% o channel: the channel type.
-%
*/
static inline Quantum ClampToUnsignedQuantum(const Quantum quantum)
@@ -682,16 +649,6 @@
MagickExport MagickBooleanType ClampImage(Image *image)
{
- MagickBooleanType
- status;
-
- status=ClampImageChannel(image,DefaultChannels);
- return(status);
-}
-
-MagickExport MagickBooleanType ClampImageChannel(Image *image,
- const ChannelType channel)
-{
#define ClampImageTag "Clamp/Image"
CacheView
@@ -781,7 +738,7 @@
proceed;
#if defined(MAGICKCORE_OPENMP_SUPPORT)
- #pragma omp critical (MagickCore_ClampImageChannel)
+ #pragma omp critical (MagickCore_ClampImage)
#endif
proceed=SetImageProgress(image,ClampImageTag,progress++,
image->rows);
@@ -1528,18 +1485,13 @@
%
% The format of the RandomThresholdImage method is:
%
-% MagickBooleanType RandomThresholdImageChannel(Image *image,
+% MagickBooleanType RandomThresholdImage(Image *image,
% const char *thresholds,ExceptionInfo *exception)
-% MagickBooleanType RandomThresholdImageChannel(Image *image,
-% const ChannelType channel,const char *thresholds,
-% ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o image: the image.
%
-% o channel: the channel or channels to be thresholded.
-%
% o thresholds: a geometry string containing low,high thresholds. If the
% string contains 2x2, 3x3, or 4x4, an ordered dither of order 2, 3, or 4
% is performed instead.
@@ -1547,21 +1499,9 @@
% o exception: return any errors or warnings in this structure.
%
*/
-
MagickExport MagickBooleanType RandomThresholdImage(Image *image,
const char *thresholds,ExceptionInfo *exception)
{
- MagickBooleanType
- status;
-
- status=RandomThresholdImageChannel(image,DefaultChannels,thresholds,
- exception);
- return(status);
-}
-
-MagickExport MagickBooleanType RandomThresholdImageChannel(Image *image,
- const ChannelType channel,const char *thresholds,ExceptionInfo *exception)
-{
#define ThresholdImageTag "Threshold/Image"
CacheView
@@ -1613,22 +1553,12 @@
max_threshold*=(MagickRealType) (0.01*QuantumRange);
min_threshold*=(MagickRealType) (0.01*QuantumRange);
}
- else
- if (((max_threshold == min_threshold) || (max_threshold == 1)) &&
- (min_threshold <= 8))
- {
- /*
- Backward Compatibility -- ordered-dither -- IM v 6.2.9-6.
- */
- status=OrderedPosterizeImage(image,thresholds,exception);
- return(status);
- }
/*
Random threshold image.
*/
status=MagickTrue;
progress=0;
- if (channel == CompositeChannels)
+ if (image->sync != MagickFalse)
{
if (AcquireImageColormap(image,2) == MagickFalse)
ThrowBinaryException(ResourceLimitError,"MemoryAllocationFailed",
@@ -1692,7 +1622,7 @@
proceed;
#if defined(MAGICKCORE_OPENMP_SUPPORT)
- #pragma omp critical (MagickCore_RandomThresholdImageChannel)
+ #pragma omp critical (MagickCore_RandomThresholdImage)
#endif
proceed=SetImageProgress(image,ThresholdImageTag,progress++,
image->rows);
@@ -1817,7 +1747,7 @@
proceed;
#if defined(MAGICKCORE_OPENMP_SUPPORT)
- #pragma omp critical (MagickCore_RandomThresholdImageChannel)
+ #pragma omp critical (MagickCore_RandomThresholdImage)
#endif
proceed=SetImageProgress(image,ThresholdImageTag,progress++,
image->rows);
@@ -1847,35 +1777,20 @@
%
% The format of the WhiteThresholdImage method is:
%
-% MagickBooleanType WhiteThresholdImage(Image *image,const char *threshold)
-% MagickBooleanType WhiteThresholdImageChannel(Image *image,
-% const ChannelType channel,const char *threshold,
-% ExceptionInfo *exception)
+% MagickBooleanType WhiteThresholdImage(Image *image,
+% const char *threshold,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
% o image: the image.
%
-% o channel: the channel or channels to be thresholded.
-%
% o threshold: Define the threshold value.
%
% o exception: return any errors or warnings in this structure.
%
*/
MagickExport MagickBooleanType WhiteThresholdImage(Image *image,
- const char *threshold)
-{
- MagickBooleanType
- status;
-
- status=WhiteThresholdImageChannel(image,DefaultChannels,threshold,
- &image->exception);
- return(status);
-}
-
-MagickExport MagickBooleanType WhiteThresholdImageChannel(Image *image,
- const ChannelType channel,const char *thresholds,ExceptionInfo *exception)
+ const char *thresholds,ExceptionInfo *exception)
{
#define ThresholdImageTag "Threshold/Image"
@@ -1958,7 +1873,7 @@
}
for (x=0; x < (ssize_t) image->columns; x++)
{
- if (channel != DefaultChannels)
+ if (image->sync != MagickFalse)
{
if (GetPixelIntensity(image,q) > GetPixelInfoIntensity(&threshold))
{
@@ -1998,7 +1913,7 @@
proceed;
#if defined(MAGICKCORE_OPENMP_SUPPORT)
- #pragma omp critical (MagickCore_WhiteThresholdImageChannel)
+ #pragma omp critical (MagickCore_WhiteThresholdImage)
#endif
proceed=SetImageProgress(image,ThresholdImageTag,progress++,
image->rows);
diff --git a/MagickCore/threshold.h b/MagickCore/threshold.h
index 2743d46..c8c7230 100644
--- a/MagickCore/threshold.h
+++ b/MagickCore/threshold.h
@@ -35,20 +35,12 @@
extern MagickExport MagickBooleanType
BilevelImage(Image *,const double),
- BilevelImageChannel(Image *,const ChannelType,const double),
- BlackThresholdImage(Image *,const char *),
- BlackThresholdImageChannel(Image *,const ChannelType,const char *,
- ExceptionInfo *),
+ BlackThresholdImage(Image *,const char *,ExceptionInfo *),
ClampImage(Image *),
- ClampImageChannel(Image *,const ChannelType),
ListThresholdMaps(FILE *,ExceptionInfo *),
OrderedPosterizeImage(Image *,const char *,ExceptionInfo *),
RandomThresholdImage(Image *,const char *,ExceptionInfo *),
- RandomThresholdImageChannel(Image *,const ChannelType,const char *,
- ExceptionInfo *),
- WhiteThresholdImage(Image *,const char *),
- WhiteThresholdImageChannel(Image *,const ChannelType,const char *,
- ExceptionInfo *);
+ WhiteThresholdImage(Image *,const char *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}