]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Sun, 11 Sep 2011 02:08:56 +0000 (02:08 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Sun, 11 Sep 2011 02:08:56 +0000 (02:08 +0000)
MagickCore/fx.c
MagickCore/resize.c

index e979c1005c0b4e0989e574edc299d203cba1fc56..69df4ce7b65f86542a401903b7957f47db98fab2 100644 (file)
@@ -5345,9 +5345,6 @@ MagickExport Image *WaveImage(const Image *image,const double amplitude,
   MagickOffsetType
     progress;
 
-  PixelInfo
-    zero;
-
   MagickRealType
     *sine_map;
 
@@ -5395,7 +5392,6 @@ MagickExport Image *WaveImage(const Image *image,const double amplitude,
   */
   status=MagickTrue;
   progress=0;
-  GetPixelInfo(wave_image,&zero);
   image_view=AcquireCacheView(image);
   wave_view=AcquireCacheView(wave_image);
   (void) SetCacheViewVirtualPixelMethod(image_view,
@@ -5405,9 +5401,6 @@ MagickExport Image *WaveImage(const Image *image,const double amplitude,
 #endif
   for (y=0; y < (ssize_t) wave_image->rows; y++)
   {
-    PixelInfo
-      pixel;
-
     register Quantum
       *restrict q;
 
@@ -5423,13 +5416,34 @@ MagickExport Image *WaveImage(const Image *image,const double amplitude,
         status=MagickFalse;
         continue;
       }
-    pixel=zero;
     for (x=0; x < (ssize_t) wave_image->columns; x++)
     {
-      (void) InterpolatePixelInfo(image,image_view,
-        UndefinedInterpolatePixel,(double) x,(double) (y-sine_map[x]),&pixel,
-        exception);
-      SetPixelPixelInfo(wave_image,&pixel,q);
+      register ssize_t
+        i;
+
+      for (i=0; i < (ssize_t) GetPixelChannels(image); i++)
+      {
+        double
+          pixel;
+
+        PixelChannel
+          channel;
+
+        PixelTrait
+          wave_traits,
+          traits;
+
+        traits=GetPixelChannelMapTraits(image,(PixelChannel) i);
+        channel=GetPixelChannelMapChannel(image,(PixelChannel) i);
+        wave_traits=GetPixelChannelMapTraits(wave_image,channel);
+        if ((traits == UndefinedPixelTrait) ||
+            (wave_traits == UndefinedPixelTrait))
+          continue;
+        status=InterpolatePixelChannel(image,image_view,(PixelChannel) i,
+          MeshInterpolatePixel,(double) x,(double) (y-sine_map[x]),&pixel,
+          exception);
+        q[channel]=ClampToQuantum(pixel);
+      }
       q+=GetPixelChannels(wave_image);
     }
     if (SyncCacheViewAuthenticPixels(wave_view,exception) == MagickFalse)
index e3b7a6846ae28a1d1cf1228af92d8d4be76018c6..bb74be901829eefe273dadd784477ed5b0e74ea9 100644 (file)
@@ -1160,7 +1160,6 @@ MagickExport Image *AdaptiveResizeImage(const Image *image,
 
   CacheView
     *image_view,
-    *interpolate_view,
     *resize_view;
 
   Image
@@ -1199,7 +1198,6 @@ MagickExport Image *AdaptiveResizeImage(const Image *image,
   status=MagickTrue;
   progress=0;
   image_view=AcquireCacheView(image);
-  interpolate_view=AcquireCacheView(image);
   resize_view=AcquireCacheView(resize_image);
 #if defined(MAGICKCORE_OPENMP_SUPPORT)
   #pragma omp parallel for schedule(dynamic,4) shared(progress,status) omp_throttle(1)
@@ -1209,9 +1207,6 @@ MagickExport Image *AdaptiveResizeImage(const Image *image,
     PointInfo
       offset;
 
-    register const Quantum
-      *restrict p;
-
     register Quantum
       *restrict q;
 
@@ -1220,10 +1215,9 @@ MagickExport Image *AdaptiveResizeImage(const Image *image,
 
     if (status == MagickFalse)
       continue;
-    p=GetCacheViewVirtualPixels(image_view,0,y,image->columns,1,exception);
     q=QueueCacheViewAuthenticPixels(resize_view,0,y,resize_image->columns,1,
       exception);
-    if ((p == (const Quantum *) NULL) || (q == (Quantum *) NULL))
+    if (q == (Quantum *) NULL)
       continue;
     offset.y=((MagickRealType) (y+0.5)*image->rows/resize_image->rows);
     for (x=0; x < (ssize_t) resize_image->columns; x++)
@@ -1250,12 +1244,7 @@ MagickExport Image *AdaptiveResizeImage(const Image *image,
         if ((traits == UndefinedPixelTrait) ||
             (resize_traits == UndefinedPixelTrait))
           continue;
-        if ((resize_traits & CopyPixelTrait) != 0)
-          {
-            q[channel]=p[i];
-            continue;
-          }
-        status=InterpolatePixelChannel(image,interpolate_view,(PixelChannel) i,
+        status=InterpolatePixelChannel(image,image_view,(PixelChannel) i,
           MeshInterpolatePixel,offset.x-0.5,offset.y-0.5,&pixel,exception);
         q[channel]=ClampToQuantum(pixel);
       }
@@ -1278,7 +1267,6 @@ MagickExport Image *AdaptiveResizeImage(const Image *image,
       }
   }
   resize_view=DestroyCacheView(resize_view);
-  interpolate_view=DestroyCacheView(interpolate_view);
   image_view=DestroyCacheView(image_view);
   if (status == MagickFalse)
     resize_image=DestroyImage(resize_image);