]> granicus.if.org Git - imagemagick/commitdiff
Enabled AccelerateResizeImage.
authordirk <dirk@git.imagemagick.org>
Wed, 28 Jan 2015 21:20:12 +0000 (21:20 +0000)
committerdirk <dirk@git.imagemagick.org>
Wed, 28 Jan 2015 21:20:12 +0000 (21:20 +0000)
MagickCore/resize.c

index 247cdfda82fb56f3445096f05c61a9e6c8a08d69..b0a9c6677a513ed9b8a38e4fc6f59a41fdd9c7e2 100644 (file)
@@ -40,6 +40,7 @@
   Include declarations.
 */
 #include "MagickCore/studio.h"
+#include "MagickCore/accelerate.h"
 #include "MagickCore/artifact.h"
 #include "MagickCore/blob.h"
 #include "MagickCore/cache.h"
@@ -2853,20 +2854,11 @@ MagickExport Image *ResizeImage(const Image *image,const size_t columns,
   if ((columns == image->columns) && (rows == image->rows) &&
       (filter == UndefinedFilter))
     return(CloneImage(image,0,0,MagickTrue,exception));
-  resize_image=CloneImage(image,columns,rows,MagickTrue,exception);
-  if (resize_image == (Image *) NULL)
-    return(resize_image);
   /*
     Acquire resize filter.
   */
   x_factor=(double) columns/(double) image->columns;
   y_factor=(double) rows/(double) image->rows;
-  if (x_factor > y_factor)
-    filter_image=CloneImage(image,columns,image->rows,MagickTrue,exception);
-  else
-    filter_image=CloneImage(image,image->columns,rows,MagickTrue,exception);
-  if (filter_image == (Image *) NULL)
-    return(DestroyImage(resize_image));
   filter_type=LanczosFilter;
   if (filter != UndefinedFilter)
     filter_type=filter;
@@ -2879,6 +2871,27 @@ MagickExport Image *ResizeImage(const Image *image,const size_t columns,
           ((x_factor*y_factor) > 1.0))
         filter_type=MitchellFilter;
   resize_filter=AcquireResizeFilter(image,filter_type,MagickFalse,exception);
+  resize_image=AccelerateResizeImage(image,columns,rows,resize_filter,exception);
+  if (resize_image != (Image *) NULL)
+  {
+    resize_filter=DestroyResizeFilter(resize_filter);
+    return(resize_image);
+  }
+  resize_image=CloneImage(image,columns,rows,MagickTrue,exception);
+  if (resize_image == (Image *) NULL)
+  {
+    resize_filter=DestroyResizeFilter(resize_filter);
+    return(resize_image);
+  }
+  if (x_factor > y_factor)
+    filter_image=CloneImage(image,columns,image->rows,MagickTrue,exception);
+  else
+    filter_image=CloneImage(image,image->columns,rows,MagickTrue,exception);
+  if (filter_image == (Image *) NULL)
+  {
+    resize_filter=DestroyResizeFilter(resize_filter);
+    return(DestroyImage(resize_image));
+  }
   /*
     Resize image.
   */