From: cristy Date: Fri, 8 Mar 2013 12:33:42 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~4129 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=35faaa73b04611ce5419c2bf48903d71ffea9869;p=imagemagick --- diff --git a/MagickCore/effect.c b/MagickCore/effect.c index 305f9e4a1..b42fd6b3a 100644 --- a/MagickCore/effect.c +++ b/MagickCore/effect.c @@ -866,7 +866,7 @@ MagickExport Image *BlurImage(const Image *image,const double radius, ThrowImageException(ResourceLimitError,"MemoryAllocationFailed"); } normalize=0.0; - j=(ssize_t) kernel_info->width/2; + j=(ssize_t) (kernel_info->width-1)/2; i=0; for (v=(-j); v <= j; v++) { @@ -879,6 +879,8 @@ MagickExport Image *BlurImage(const Image *image,const double radius, } } kernel_info->values[i/2]+=(1.0-normalize); + if (sigma < MagickEpsilon) + kernel_info->values[i/2]=1.0; blur_image=ConvolveImage(image,kernel_info,exception); kernel_info=DestroyKernelInfo(kernel_info); return(blur_image); @@ -1282,7 +1284,7 @@ MagickExport Image *EdgeImage(const Image *image,const double radius, kernel_info=DestroyKernelInfo(kernel_info); ThrowImageException(ResourceLimitError,"MemoryAllocationFailed"); } - j=(ssize_t) kernel_info->width/2; + j=(ssize_t) (kernel_info->width-1)/2; i=0; for (v=(-j); v <= j; v++) { @@ -1374,7 +1376,7 @@ MagickExport Image *EmbossImage(const Image *image,const double radius, kernel_info=DestroyKernelInfo(kernel_info); ThrowImageException(ResourceLimitError,"MemoryAllocationFailed"); } - j=(ssize_t) kernel_info->width/2; + j=(ssize_t) (kernel_info->width-1)/2; k=j; i=0; for (v=(-j); v <= j; v++) @@ -1474,7 +1476,7 @@ MagickExport Image *GaussianBlurImage(const Image *image,const double radius, kernel_info=DestroyKernelInfo(kernel_info); ThrowImageException(ResourceLimitError,"MemoryAllocationFailed"); } - j=(ssize_t) kernel_info->width/2; + j=(ssize_t) (kernel_info->width-1)/2; i=0; for (v=(-j); v <= j; v++) { @@ -3224,7 +3226,7 @@ MagickExport Image *SharpenImage(const Image *image,const double radius, ThrowImageException(ResourceLimitError,"MemoryAllocationFailed"); } normalize=0.0; - j=(ssize_t) kernel_info->width/2; + j=(ssize_t) (kernel_info->width-1)/2; i=0; for (v=(-j); v <= j; v++) { @@ -3237,6 +3239,8 @@ MagickExport Image *SharpenImage(const Image *image,const double radius, } } kernel_info->values[i/2]=(double) ((-2.0)*normalize); + if (sigma < MagickEpsilon) + kernel_info->values[i/2]=1.0; sharp_image=ConvolveImage(image,kernel_info,exception); kernel_info=DestroyKernelInfo(kernel_info); return(sharp_image); diff --git a/MagickCore/gem.c b/MagickCore/gem.c index 17a0dd491..36d466c98 100644 --- a/MagickCore/gem.c +++ b/MagickCore/gem.c @@ -938,7 +938,7 @@ MagickPrivate size_t GetOptimalKernelWidth1D(const double radius, for (width=5; ; ) { normalize=0.0; - j=(ssize_t) width/2; + j=(ssize_t) (width-1)/2; for (i=(-j); i <= j; i++) normalize+=exp(-((double) (i*i))*alpha)*beta; value=exp(-((double) (j*j))*alpha)*beta/normalize; @@ -978,7 +978,7 @@ MagickPrivate size_t GetOptimalKernelWidth2D(const double radius, for (width=5; ; ) { normalize=0.0; - j=(ssize_t) width/2; + j=(ssize_t) (width-1)/2; for (v=(-j); v <= j; v++) for (u=(-j); u <= j; u++) normalize+=exp(-((double) (u*u+v*v))*alpha)*beta;