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)
 }