]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Sat, 27 Apr 2013 00:26:16 +0000 (00:26 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Sat, 27 Apr 2013 00:26:16 +0000 (00:26 +0000)
MagickCore/effect.c

index 79ca242215d3c2ddfa06dd7c6de191e51ac7699c..6ec08f340b9ee2ef6eec6ecbea511ef5a3b56006 100644 (file)
@@ -1206,17 +1206,14 @@ MagickExport Image *DespeckleImage(const Image *image,ExceptionInfo *exception)
 MagickExport Image *EdgeImage(const Image *image,const double radius,
   ExceptionInfo *exception)
 {
-  Image
-    *edge_image;
+  char
+    geometry[MaxTextExtent];
 
   KernelInfo
     *kernel_info;
 
-  register ssize_t
-    i;
-
-  size_t
-    width;
+  Image
+    *edge_image;
 
   assert(image != (const Image *) NULL);
   assert(image->signature == MagickSignature);
@@ -1224,28 +1221,11 @@ MagickExport Image *EdgeImage(const Image *image,const double radius,
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
   assert(exception != (ExceptionInfo *) NULL);
   assert(exception->signature == MagickSignature);
-  width=GetOptimalKernelWidth1D(radius,0.5);
-  kernel_info=AcquireKernelInfo((const char *) NULL);
+  (void) FormatLocaleString(geometry,MaxTextExtent,"square:%.20g",radius);
+  kernel_info=AcquireKernelInfo(geometry);
   if (kernel_info == (KernelInfo *) NULL)
     ThrowImageException(ResourceLimitError,"MemoryAllocationFailed");
-  (void) ResetMagickMemory(kernel_info,0,sizeof(*kernel_info));
-  kernel_info->width=width;
-  kernel_info->height=width;
-  kernel_info->x=(ssize_t) (width-1)/2;
-  kernel_info->y=(ssize_t) (width-1)/2;
-  kernel_info->signature=MagickSignature;
-  kernel_info->values=(MagickRealType *) MagickAssumeAligned(
-    AcquireAlignedMemory(kernel_info->width,kernel_info->height*
-    sizeof(*kernel_info->values)));
-  if (kernel_info->values == (MagickRealType *) NULL)
-    {
-      kernel_info=DestroyKernelInfo(kernel_info);
-      ThrowImageException(ResourceLimitError,"MemoryAllocationFailed");
-    }
-  for (i=0; i < (ssize_t) (kernel_info->width*kernel_info->height); i++)
-    kernel_info->values[i]=(-1.0);
-  kernel_info->values[i/2]=(double) kernel_info->width*kernel_info->height-1.0;
-  edge_image=MorphologyApply(image,ConvolveMorphology,1,kernel_info,
+  edge_image=MorphologyApply(image,EdgeInMorphology,1,kernel_info,
     UndefinedCompositeOp,0.0,exception);
   kernel_info=DestroyKernelInfo(kernel_info);
   return(edge_image);