From: Dirk Lemstra Date: Thu, 7 Sep 2017 05:12:25 +0000 (+0200) Subject: Move call to AccelerateMotionBlurImage. X-Git-Tag: 7.0.7-1~12 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=590d5f357cd957f454b747cc11a6faa99d1d9b0e;p=imagemagick Move call to AccelerateMotionBlurImage. --- diff --git a/MagickCore/accelerate.c b/MagickCore/accelerate.c index 007fc0fe6..ce8cc2fca 100644 --- a/MagickCore/accelerate.c +++ b/MagickCore/accelerate.c @@ -3851,9 +3851,6 @@ MagickPrivate Image *AccelerateMotionBlurImage(const Image *image, assert(offset != (OffsetInfo *) NULL); assert(exception != (ExceptionInfo *) NULL); - /* This kernel is broken and needs to be fixed. */ - return((Image *) NULL); - if (checkAccelerateConditionRGBA(image) == MagickFalse) return((Image *) NULL); diff --git a/MagickCore/effect.c b/MagickCore/effect.c index aa309c6a9..26763c23d 100644 --- a/MagickCore/effect.c +++ b/MagickCore/effect.c @@ -2047,6 +2047,16 @@ MagickExport Image *MotionBlurImage(const Image *image,const double radius, kernel=(MagickRealType *) RelinquishAlignedMemory(kernel); ThrowImageException(ResourceLimitError,"MemoryAllocationFailed"); } + point.x=(double) width*sin(DegreesToRadians(angle)); + point.y=(double) width*cos(DegreesToRadians(angle)); + for (i=0; i < (ssize_t) width; i++) + { + offset[i].x=(ssize_t) ceil((double) (i*point.y)/hypot(point.x,point.y)-0.5); + offset[i].y=(ssize_t) ceil((double) (i*point.x)/hypot(point.x,point.y)-0.5); + } + /* + Motion blur image. + */ #if defined(MAGICKCORE_OPENCL_SUPPORT) blur_image=AccelerateMotionBlurImage(image,kernel,width,offset,exception); if (blur_image != (Image *) NULL) @@ -2070,16 +2080,6 @@ MagickExport Image *MotionBlurImage(const Image *image,const double radius, blur_image=DestroyImage(blur_image); return((Image *) NULL); } - point.x=(double) width*sin(DegreesToRadians(angle)); - point.y=(double) width*cos(DegreesToRadians(angle)); - for (i=0; i < (ssize_t) width; i++) - { - offset[i].x=(ssize_t) ceil((double) (i*point.y)/hypot(point.x,point.y)-0.5); - offset[i].y=(ssize_t) ceil((double) (i*point.x)/hypot(point.x,point.y)-0.5); - } - /* - Motion blur image. - */ status=MagickTrue; progress=0; image_view=AcquireVirtualCacheView(image,exception);