From: cristy Date: Sun, 11 Sep 2011 02:08:56 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~7032 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a58eca511c8f3c7ae4d333fb4f79fa51b38ac163;p=imagemagick --- diff --git a/MagickCore/fx.c b/MagickCore/fx.c index e979c1005..69df4ce7b 100644 --- a/MagickCore/fx.c +++ b/MagickCore/fx.c @@ -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) diff --git a/MagickCore/resize.c b/MagickCore/resize.c index e3b7a6846..bb74be901 100644 --- a/MagickCore/resize.c +++ b/MagickCore/resize.c @@ -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);