diff --git a/magick/accelerate.c b/magick/accelerate.c
index 7b93c33..039427c 100644
--- a/magick/accelerate.c
+++ b/magick/accelerate.c
@@ -96,7 +96,7 @@
% The format of the AccelerateConvolveImage method is:
%
% Image *AccelerateConvolveImage(const Image *image,
-% const MagickKernel *kernel,Image *convolve_image,
+% const KernelInfo *kernel,Image *convolve_image,
% ExceptionInfo *exception)
%
% A description of each parameter follows:
@@ -587,13 +587,13 @@
#endif
MagickExport MagickBooleanType AccelerateConvolveImage(const Image *image,
- const MagickKernel *kernel,Image *convolve_image,ExceptionInfo *exception)
+ const KernelInfo *kernel,Image *convolve_image,ExceptionInfo *exception)
{
assert(image != (Image *) NULL);
assert(image->signature == MagickSignature);
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
- assert(kernel != (MagickKernel *) NULL);
+ assert(kernel != (KernelInfo *) NULL);
assert(kernel->signature == MagickSignature);
assert(convolve_image != (Image *) NULL);
assert(convolve_image->signature == MagickSignature);
diff --git a/magick/accelerate.h b/magick/accelerate.h
index d9b0968..d7a941a 100644
--- a/magick/accelerate.h
+++ b/magick/accelerate.h
@@ -25,7 +25,7 @@
#include <magick/morphology.h>
extern MagickBooleanType
- AccelerateConvolveImage(const Image *,const MagickKernel *,Image *,
+ AccelerateConvolveImage(const Image *,const KernelInfo *,Image *,
ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
diff --git a/magick/effect.c b/magick/effect.c
index fccd214..386022c 100644
--- a/magick/effect.c
+++ b/magick/effect.c
@@ -2129,10 +2129,10 @@
%
% The format of the FilterImage method is:
%
-% Image *FilterImage(const Image *image,const MagickKernel *kernel,
+% Image *FilterImage(const Image *image,const KernelInfo *kernel,
% ExceptionInfo *exception)
% Image *FilterImageChannel(const Image *image,const ChannelType channel,
-% const MagickKernel *kernel,ExceptionInfo *exception)
+% const KernelInfo *kernel,ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -2146,7 +2146,7 @@
%
*/
-MagickExport Image *FilterImage(const Image *image,const MagickKernel *kernel,
+MagickExport Image *FilterImage(const Image *image,const KernelInfo *kernel,
ExceptionInfo *exception)
{
Image
@@ -2157,7 +2157,7 @@
}
MagickExport Image *FilterImageChannel(const Image *image,
- const ChannelType channel,const MagickKernel *kernel,ExceptionInfo *exception)
+ const ChannelType channel,const KernelInfo *kernel,ExceptionInfo *exception)
{
#define FilterImageTag "Filter/Image"
diff --git a/magick/effect.h b/magick/effect.h
index 73197b2..2f6fc5a 100644
--- a/magick/effect.h
+++ b/magick/effect.h
@@ -76,8 +76,8 @@
*DespeckleImage(const Image *,ExceptionInfo *),
*EdgeImage(const Image *,const double,ExceptionInfo *),
*EmbossImage(const Image *,const double,const double,ExceptionInfo *),
- *FilterImage(const Image *,const MagickKernel *,ExceptionInfo *),
- *FilterImageChannel(const Image *,const ChannelType,const MagickKernel *,
+ *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,
diff --git a/magick/methods.h b/magick/methods.h
index daafe24..d0f3820 100644
--- a/magick/methods.h
+++ b/magick/methods.h
@@ -50,7 +50,7 @@
#define AcquireImage PrependMagickMethod(AcquireImage)
#define AcquireIndexes PrependMagickMethod(AcquireIndexes)
#define AcquireKernelBuiltIn PrependMagickMethod(AcquireKernelBuiltIn)
-#define AcquireKernelFromString PrependMagickMethod(AcquireKernelFromString)
+#define AcquireKernelInfo PrependMagickMethod(AcquireKernelInfo)
#define AcquireMagickMatrix PrependMagickMethod(AcquireMagickMatrix)
#define AcquireMagickMemory PrependMagickMethod(AcquireMagickMemory)
#define AcquireMagickResource PrependMagickMethod(AcquireMagickResource)
diff --git a/magick/morphology.c b/magick/morphology.c
index 4abe7a5..7dbc9fc 100644
--- a/magick/morphology.c
+++ b/magick/morphology.c
@@ -103,7 +103,7 @@
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-% AcquireKernelFromString() takes the given string (generally supplied by the
+% AcquireKernelInfo() takes the given string (generally supplied by the
% user) and converts it into a Morphology/Convolution Kernel. This allows
% users to specify a kernel from a number of pre-defined kernels, or to fully
% specify their own kernel for a specific Convolution or Morphology
@@ -152,7 +152,7 @@
%
% The format of the AcquireKernal method is:
%
-% MagickKernel *AcquireKernelFromString(const char *kernel_string)
+% KernelInfo *AcquireKernelInfo(const char *kernel_string)
%
% A description of each parameter follows:
%
@@ -160,9 +160,9 @@
%
*/
-MagickExport MagickKernel *AcquireKernelFromString(const char *kernel_string)
+MagickExport KernelInfo *AcquireKernelInfo(const char *kernel_string)
{
- MagickKernel
+ KernelInfo
*kernel;
char
@@ -190,9 +190,9 @@
long
type;
- type=ParseMagickOption(MagickKernelOptions,MagickFalse,token);
+ type=ParseMagickOption(KernelInfoOptions,MagickFalse,token);
if ( type < 0 || type == UserDefinedKernel )
- return((MagickKernel *)NULL);
+ return((KernelInfo *)NULL);
while (((isspace((int) ((unsigned char) *p)) != 0) ||
(*p == ',') || (*p == ':' )) && (*p != '\0'))
@@ -213,11 +213,11 @@
args.psi = (double)(((long)args.sigma-1)/2);
}
- return(AcquireKernelBuiltIn((MagickKernelType)type, &args));
+ return(AcquireKernelBuiltIn((KernelInfoType)type, &args));
}
- kernel=(MagickKernel *) AcquireMagickMemory(sizeof(*kernel));
- if (kernel == (MagickKernel *)NULL)
+ kernel=(KernelInfo *) AcquireMagickMemory(sizeof(*kernel));
+ if (kernel == (KernelInfo *)NULL)
return(kernel);
(void) ResetMagickMemory(kernel,0,sizeof(*kernel));
kernel->type = UserDefinedKernel;
@@ -322,7 +322,7 @@
%
% The format of the AcquireKernalBuiltIn method is:
%
-% MagickKernel *AcquireKernelBuiltIn(const MagickKernelType type,
+% KernelInfo *AcquireKernelBuiltIn(const KernelInfoType type,
% const GeometryInfo args)
%
% A description of each parameter follows:
@@ -473,10 +473,10 @@
%
*/
-MagickExport MagickKernel *AcquireKernelBuiltIn(const MagickKernelType type,
+MagickExport KernelInfo *AcquireKernelBuiltIn(const KernelInfoType type,
const GeometryInfo *args)
{
- MagickKernel
+ KernelInfo
*kernel;
register unsigned long
@@ -489,8 +489,8 @@
double
nan = sqrt((double)-1.0); /* Special Value : Not A Number */
- kernel=(MagickKernel *) AcquireMagickMemory(sizeof(*kernel));
- if (kernel == (MagickKernel *) NULL)
+ kernel=(KernelInfo *) AcquireMagickMemory(sizeof(*kernel));
+ if (kernel == (KernelInfo *) NULL)
return(kernel);
(void) ResetMagickMemory(kernel,0,sizeof(*kernel));
kernel->value_min = kernel->value_max = 0.0;
@@ -656,7 +656,7 @@
kernel->offset_x = kernel->offset_y = (kernel->width-1)/2;
}
else {
- /* NOTE: user defaults set in "AcquireKernelFromString()" */
+ /* NOTE: user defaults set in "AcquireKernelInfo()" */
if ( args->rho < 1.0 || args->sigma < 1.0 )
return(DestroyKernel(kernel)); /* invalid args given */
kernel->width = (unsigned long)args->rho;
@@ -858,7 +858,7 @@
%
% The format of the DestroyKernel method is:
%
-% MagickKernel *DestroyKernel(MagickKernel *kernel)
+% KernelInfo *DestroyKernel(KernelInfo *kernel)
%
% A description of each parameter follows:
%
@@ -866,11 +866,11 @@
%
*/
-MagickExport MagickKernel *DestroyKernel(MagickKernel *kernel)
+MagickExport KernelInfo *DestroyKernel(KernelInfo *kernel)
{
- assert(kernel != (MagickKernel *) NULL);
+ assert(kernel != (KernelInfo *) NULL);
kernel->values=(double *)RelinquishMagickMemory(kernel->values);
- kernel=(MagickKernel *) RelinquishMagickMemory(kernel);
+ kernel=(KernelInfo *) RelinquishMagickMemory(kernel);
return(kernel);
}
@@ -890,14 +890,14 @@
%
% The format of the KernelNormalize method is:
%
-% void KernelRotate (MagickKernel *kernel)
+% void KernelRotate (KernelInfo *kernel)
%
% A description of each parameter follows:
%
% o kernel: the Morphology/Convolution kernel
%
*/
-MagickExport void KernelNormalize(MagickKernel *kernel)
+MagickExport void KernelNormalize(KernelInfo *kernel)
{
register unsigned long
i;
@@ -928,21 +928,21 @@
%
% The format of the KernelNormalize method is:
%
-% void KernelPrint (MagickKernel *kernel)
+% void KernelPrint (KernelInfo *kernel)
%
% A description of each parameter follows:
%
% o kernel: the Morphology/Convolution kernel
%
*/
-MagickExport void KernelPrint(MagickKernel *kernel)
+MagickExport void KernelPrint(KernelInfo *kernel)
{
unsigned long
i, u, v;
fprintf(stderr,
"Kernel \"%s\" of size %lux%lu%+ld%+ld with value from %lg to %lg\n",
- MagickOptionToMnemonic(MagickKernelOptions, kernel->type),
+ MagickOptionToMnemonic(KernelInfoOptions, kernel->type),
kernel->width, kernel->height,
kernel->offset_x, kernel->offset_y,
kernel->value_min, kernel->value_max);
@@ -973,7 +973,7 @@
%
% The format of the KernelRotate method is:
%
-% void KernelRotate (MagickKernel *kernel, double angle)
+% void KernelRotate (KernelInfo *kernel, double angle)
%
% A description of each parameter follows:
%
@@ -982,7 +982,7 @@
% o angle: angle to rotate in degrees
%
*/
-MagickExport void KernelRotate(MagickKernel *kernel, double angle)
+MagickExport void KernelRotate(KernelInfo *kernel, double angle)
{
/* WARNING: Currently assumes the kernel (rightly) is horizontally symetrical
**
@@ -1087,8 +1087,11 @@
% The format of the MorphologyImage method is:
%
% Image *MorphologyImage(const Image *image, const MorphologyMethod
-% method, const long iterations, const ChannelType channel,
-% const MagickKernel *kernel, ExceptionInfo *exception)
+% method, const long iterations, const KernelInfo *kernel,
+% ExceptionInfo *exception)
+% Image *MorphologyImage(const Image *image, const ChannelType channel,
+% const MorphologyMethod method, const long iterations,
+% const KernelInfo *kernel, ExceptionInfo *exception)
%
% A description of each parameter follows:
%
@@ -1142,9 +1145,9 @@
*/
static unsigned long MorphologyApply(const Image *image, Image
*result_image, const MorphologyMethod method, const ChannelType channel,
- const MagickKernel *kernel, ExceptionInfo *exception)
+ const KernelInfo *kernel, ExceptionInfo *exception)
{
- #define MorphologyTag "Morphology/Image"
+#define MorphologyTag "Morphology/Image"
long
progress,
@@ -1576,9 +1579,20 @@
return(status ? changed : 0);
}
-MagickExport Image *MorphologyImage(const Image *image,
+MagickExport Image *MorphologyImage(const Image *image,MorphologyMethod method,
+ const long iterations,KernelInfo *kernel, ExceptionInfo *exception)
+{
+ Image
+ *morphology_image;
+
+ morphology_image=MorphologyImageChannel(image,DefaultChannels,method,
+ iterations,kernel,exception);
+ return(morphology_image);
+}
+
+MagickExport Image *MorphologyImageChannel(const Image *image,
const ChannelType channel, MorphologyMethod method, const long iterations,
- MagickKernel *kernel, ExceptionInfo *exception)
+ KernelInfo *kernel, ExceptionInfo *exception)
{
unsigned long
count,
@@ -1603,7 +1617,7 @@
/* kernel must be valid at this point
* (except maybe for posible future morphology methods like "Prune"
*/
- assert(kernel != (MagickKernel *)NULL);
+ assert(kernel != (KernelInfo *)NULL);
count = 0;
limit = iterations;
@@ -1614,28 +1628,28 @@
changed=MagickFalse;
switch( method ) {
case CloseMorphology:
- new_image = MorphologyImage(image, DialateMorphology, iterations, channel,
+ new_image = MorphologyImageChannel(image, DialateMorphology, iterations, channel,
kernel, exception);
if (new_image == (Image *) NULL)
return((Image *) NULL);
method = ErodeMorphology;
break;
case OpenMorphology:
- new_image = MorphologyImage(image, ErodeMorphology, iterations, channel,
+ new_image = MorphologyImageChannel(image, ErodeMorphology, iterations, channel,
kernel, exception);
if (new_image == (Image *) NULL)
return((Image *) NULL);
method = DialateMorphology;
break;
case CloseIntensityMorphology:
- new_image = MorphologyImage(image, DialateIntensityMorphology,
+ new_image = MorphologyImageChannel(image, DialateIntensityMorphology,
iterations, channel, kernel, exception);
if (new_image == (Image *) NULL)
return((Image *) NULL);
method = ErodeIntensityMorphology;
break;
case OpenIntensityMorphology:
- new_image = MorphologyImage(image, ErodeIntensityMorphology,
+ new_image = MorphologyImageChannel(image, ErodeIntensityMorphology,
iterations, channel, kernel, exception);
if (new_image == (Image *) NULL)
return((Image *) NULL);
diff --git a/magick/morphology.h b/magick/morphology.h
index 1cadbc0..26753ad 100644
--- a/magick/morphology.h
+++ b/magick/morphology.h
@@ -42,7 +42,7 @@
ManhattenKernel,
EuclideanKernel,
UserDefinedKernel /* user specified kernel values */
-} MagickKernelType;
+} KernelInfoType;
typedef enum
{
@@ -61,7 +61,7 @@
typedef struct
{
- MagickKernelType
+ KernelInfoType
type;
unsigned long
@@ -70,8 +70,8 @@
offset_x,
offset_y;
- double *
- values;
+ double
+ *values;
double
value_min,
@@ -84,22 +84,23 @@
unsigned long
signature;
-} MagickKernel;
+} KernelInfo;
-extern MagickExport MagickKernel
- *AcquireKernelFromString(const char *),
- *AcquireKernelBuiltIn(const MagickKernelType, const GeometryInfo *),
- *DestroyKernel(MagickKernel *);
+extern MagickExport KernelInfo
+ *AcquireKernelInfo(const char *),
+ *AcquireKernelBuiltIn(const KernelInfoType, const GeometryInfo *),
+ *DestroyKernel(KernelInfo *);
extern MagickExport void
- KernelNormalize(MagickKernel *),
- KernelPrint(MagickKernel *),
- KernelRotate(MagickKernel *, double);
+ KernelNormalize(KernelInfo *),
+ KernelPrint(KernelInfo *),
+ KernelRotate(KernelInfo *, double);
extern MagickExport Image
- *MorphologyImage(const Image *, const ChannelType, MorphologyMethod,
- const long, MagickKernel *, ExceptionInfo *);
-
+ *MorphologyImage(const Image *,MorphologyMethod,const long,KernelInfo *,
+ ExceptionInfo *),
+ *MorphologyImageChannel(const Image *,const ChannelType,MorphologyMethod,
+ const long,KernelInfo *,ExceptionInfo *);
#if defined(__cplusplus) || defined(c_plusplus)
}
diff --git a/magick/option.c b/magick/option.c
index bcc2648..26d1ef6 100644
--- a/magick/option.c
+++ b/magick/option.c
@@ -1115,7 +1115,7 @@
{ "Intent", (long) MagickIntentOptions, MagickFalse },
{ "Interlace", (long) MagickInterlaceOptions, MagickFalse },
{ "Interpolate", (long) MagickInterpolateOptions, MagickFalse },
- { "Kernel", (long) MagickKernelOptions, MagickFalse },
+ { "Kernel", (long) KernelInfoOptions, MagickFalse },
{ "Layers", (long) MagickLayerOptions, MagickFalse },
{ "LineCap", (long) MagickLineCapOptions, MagickFalse },
{ "LineJoin", (long) MagickLineJoinOptions, MagickFalse },
@@ -1702,7 +1702,7 @@
case MagickIntentOptions: return(IntentOptions);
case MagickInterlaceOptions: return(InterlaceOptions);
case MagickInterpolateOptions: return(InterpolateOptions);
- case MagickKernelOptions: return(KernelOptions);
+ case KernelInfoOptions: return(KernelOptions);
case MagickLayerOptions: return(LayerOptions);
case MagickLineCapOptions: return(LineCapOptions);
case MagickLineJoinOptions: return(LineJoinOptions);
diff --git a/magick/option.h b/magick/option.h
index 0a42ffa..16a99e9 100644
--- a/magick/option.h
+++ b/magick/option.h
@@ -89,7 +89,7 @@
MagickTypeOptions,
MagickValidateOptions,
MagickVirtualPixelOptions,
- MagickKernelOptions,
+ KernelInfoOptions,
MagickMorphologyOptions
} MagickOption;