]> granicus.if.org Git - imagemagick/commitdiff
Move call to AccelerateMotionBlurImage.
authorDirk Lemstra <dirk@git.imagemagick.org>
Thu, 7 Sep 2017 05:12:25 +0000 (07:12 +0200)
committerDirk Lemstra <dirk@git.imagemagick.org>
Thu, 7 Sep 2017 05:12:52 +0000 (07:12 +0200)
MagickCore/accelerate.c
MagickCore/effect.c

index 007fc0fe638e4b723c00ec2a8e9c735c27121785..ce8cc2fca29117be3521fd09d2985b5e80441063 100644 (file)
@@ -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);
 
index aa309c6a95048e6527e396a03881eb2eee43fa24..26763c23d40fa9f265a9871bf9b923064e5bd456 100644 (file)
@@ -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);