From: cristy Date: Wed, 1 Oct 2014 12:33:56 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~1951 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0562d77d11524ef882fd95e99aae307417363df1;p=imagemagick --- diff --git a/MagickCore/effect.c b/MagickCore/effect.c index 2a2eb3688..dd268d36d 100644 --- a/MagickCore/effect.c +++ b/MagickCore/effect.c @@ -1430,6 +1430,7 @@ MagickExport Image *KuwaharaImage(const Image *image,const double radius, *kuwahara_view; Image + *gaussian_image, *kuwahara_image; MagickBooleanType @@ -1456,12 +1457,19 @@ MagickExport Image *KuwaharaImage(const Image *image,const double radius, (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename); assert(exception != (ExceptionInfo *) NULL); assert(exception->signature == MagickSignature); + gaussian_image=BlurImage(image,radius,sigma,exception); + if (gaussian_image != (Image *) NULL) + return((Image *) NULL); kuwahara_image=CloneImage(image,image->columns,image->rows,MagickTrue, exception); if (kuwahara_image == (Image *) NULL) - return((Image *) NULL); + { + gaussian_image=DestroyImage(gaussian_image); + return((Image *) NULL); + } if (SetImageStorageClass(kuwahara_image,DirectClass,exception) == MagickFalse) { + gaussian_image=DestroyImage(gaussian_image); kuwahara_image=DestroyImage(kuwahara_image); return((Image *) NULL); } @@ -1472,7 +1480,7 @@ MagickExport Image *KuwaharaImage(const Image *image,const double radius, progress=0; width=GetOptimalKernelWidth1D(radius,sigma); for (i=0; i < 4; i++) - image_view[i]=AcquireVirtualCacheView(image,exception); + image_view[i]=AcquireVirtualCacheView(gaussian_image,exception); kuwahara_view=AcquireAuthenticCacheView(kuwahara_image,exception); #if defined(MAGICKCORE_OPENMP_SUPPORT) #pragma omp parallel for schedule(static,4) shared(progress,status) \ @@ -1615,6 +1623,7 @@ MagickExport Image *KuwaharaImage(const Image *image,const double radius, kuwahara_view=DestroyCacheView(kuwahara_view); for (i=0; i < 4; i++) image_view[i]=DestroyCacheView(image_view[i]); + gaussian_image=DestroyImage(gaussian_image); if (status == MagickFalse) kuwahara_image=DestroyImage(kuwahara_image); return(kuwahara_image);