From: Cristy Date: Sun, 7 Jan 2018 23:57:25 +0000 (-0500) Subject: ... X-Git-Tag: 7.0.7-22~134 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=bb39c460b0f923e9a7810bce0e70ce92c4658a3c;p=imagemagick ... --- diff --git a/MagickCore/composite.c b/MagickCore/composite.c index 74f2a1b79..764370729 100644 --- a/MagickCore/composite.c +++ b/MagickCore/composite.c @@ -1110,9 +1110,11 @@ MagickExport MagickBooleanType CompositeImage(Image *image, (((MagickRealType) QuantumRange+1.0)/2.0)))/(((MagickRealType) QuantumRange+1.0)/2.0)+center.y+((compose == DisplaceCompositeOp) ? y : 0); - (void) InterpolatePixelInfo(image,image_view, + status=InterpolatePixelInfo(image,image_view, UndefinedInterpolatePixel,(double) offset.x,(double) offset.y, &pixel,exception); + if (status == MagickFalse) + break; /* Mask with the 'invalid pixel mask' in alpha channel. */ @@ -1122,6 +1124,8 @@ MagickExport MagickBooleanType CompositeImage(Image *image, p+=GetPixelChannels(source_image); q+=GetPixelChannels(canvas_image); } + if (x < (ssize_t) source_image->columns) + break; sync=SyncCacheViewAuthenticPixels(canvas_view,exception); if (sync == MagickFalse) break; diff --git a/MagickCore/draw.c b/MagickCore/draw.c index 60930467a..68dbb747a 100644 --- a/MagickCore/draw.c +++ b/MagickCore/draw.c @@ -1200,8 +1200,10 @@ MagickExport MagickBooleanType DrawAffineImage(Image *image, inverse_affine.tx; point.y=(double) x*inverse_affine.rx+y*inverse_affine.sy+ inverse_affine.ty; - (void) InterpolatePixelInfo(source,source_view,UndefinedInterpolatePixel, + status=InterpolatePixelInfo(source,source_view,UndefinedInterpolatePixel, point.x,point.y,&pixel,exception); + if (status == MagickFalse) + break; GetPixelInfoPixel(image,q,&composite); CompositePixelInfoOver(&pixel,pixel.alpha,&composite,composite.alpha, &composite); diff --git a/MagickCore/effect.c b/MagickCore/effect.c index 0b004020e..6f55e353a 100644 --- a/MagickCore/effect.c +++ b/MagickCore/effect.c @@ -1615,6 +1615,8 @@ MagickExport Image *KuwaharaImage(const Image *image,const double radius, status=InterpolatePixelChannels(gaussian_image,image_view,kuwahara_image, UndefinedInterpolatePixel,(double) target.x+target.width/2.0,(double) target.y+target.height/2.0,q,exception); + if (status == MagickFalse) + break; q+=GetPixelChannels(kuwahara_image); } if (SyncCacheViewAuthenticPixels(kuwahara_view,exception) == MagickFalse) @@ -3839,6 +3841,8 @@ MagickExport Image *SpreadImage(const Image *image, status=InterpolatePixelChannels(image,image_view,spread_image,method, (double) x+width*(point.x-0.5),(double) y+width*(point.y-0.5),q, exception); + if (status == MagickFalse) + break; q+=GetPixelChannels(spread_image); } if (SyncCacheViewAuthenticPixels(spread_view,exception) == MagickFalse) diff --git a/MagickCore/enhance.c b/MagickCore/enhance.c index 8a33cc7c8..bfabe7f4d 100644 --- a/MagickCore/enhance.c +++ b/MagickCore/enhance.c @@ -345,9 +345,11 @@ MagickExport MagickBooleanType ClutImage(Image *image,const Image *clut_image, for (i=0; i <= (ssize_t) MaxMap; i++) { GetPixelInfo(clut_image,clut_map+i); - (void) InterpolatePixelInfo(clut_image,clut_view,method, + status=InterpolatePixelInfo(clut_image,clut_view,method, (double) i*(clut_image->columns-adjust)/MaxMap,(double) i* (clut_image->rows-adjust)/MaxMap,clut_map+i,exception); + if (status == MagickFalse) + break; } clut_view=DestroyCacheView(clut_view); image_view=AcquireAuthenticCacheView(image,exception); @@ -2278,19 +2280,27 @@ MagickExport MagickBooleanType HaldClutImage(Image *image, point.y-=floor(point.y); point.z-=floor(point.z); pixel1=zero; - (void) InterpolatePixelInfo(hald_image,hald_view,hald_image->interpolate, + status=InterpolatePixelInfo(hald_image,hald_view,hald_image->interpolate, fmod(offset,width),floor(offset/width),&pixel1,exception); + if (status == MagickFalse) + break; pixel2=zero; - (void) InterpolatePixelInfo(hald_image,hald_view,hald_image->interpolate, + status=InterpolatePixelInfo(hald_image,hald_view,hald_image->interpolate, fmod(offset+level,width),floor((offset+level)/width),&pixel2,exception); + if (status == MagickFalse) + break; pixel3=zero; CompositePixelInfoAreaBlend(&pixel1,pixel1.alpha,&pixel2,pixel2.alpha, point.y,&pixel3); offset+=cube_size; - (void) InterpolatePixelInfo(hald_image,hald_view,hald_image->interpolate, + status=InterpolatePixelInfo(hald_image,hald_view,hald_image->interpolate, fmod(offset,width),floor(offset/width),&pixel1,exception); - (void) InterpolatePixelInfo(hald_image,hald_view,hald_image->interpolate, + if (status == MagickFalse) + break; + status=InterpolatePixelInfo(hald_image,hald_view,hald_image->interpolate, fmod(offset+level,width),floor((offset+level)/width),&pixel2,exception); + if (status == MagickFalse) + break; pixel4=zero; CompositePixelInfoAreaBlend(&pixel1,pixel1.alpha,&pixel2,pixel2.alpha, point.y,&pixel4); diff --git a/MagickCore/fx.c b/MagickCore/fx.c index 4fab82f3e..954b69514 100644 --- a/MagickCore/fx.c +++ b/MagickCore/fx.c @@ -1265,6 +1265,9 @@ static double FxGetSymbol(FxInfo *fx_info,const PixelChannel channel, Image *image; + MagickBooleanType + status; + PixelInfo pixel; @@ -1400,8 +1403,9 @@ static double FxGetSymbol(FxInfo *fx_info,const PixelChannel channel, return(0.0); } GetPixelInfo(image,&pixel); - (void) InterpolatePixelInfo(image,fx_info->view[i],image->interpolate, + status=InterpolatePixelInfo(image,fx_info->view[i],image->interpolate, point.x,point.y,&pixel,exception); + (void) status; if ((strlen(p) > 2) && (LocaleCompare(p,"intensity") != 0) && (LocaleCompare(p,"luma") != 0) && (LocaleCompare(p,"luminance") != 0) && (LocaleCompare(p,"hue") != 0) && (LocaleCompare(p,"saturation") != 0) && @@ -3386,6 +3390,8 @@ MagickExport Image *ImplodeImage(const Image *image,const double amount, status=InterpolatePixelChannels(canvas,interpolate_view,implode_image, method,(double) (factor*delta.x/scale.x+center.x),(double) (factor* delta.y/scale.y+center.y),q,exception); + if (status == MagickFalse) + break; } p+=GetPixelChannels(canvas); q+=GetPixelChannels(implode_image); @@ -5240,6 +5246,8 @@ MagickExport Image *SwirlImage(const Image *image,double degrees, status=InterpolatePixelChannels(canvas,interpolate_view,swirl_image, method,((cosine*delta.x-sine*delta.y)/scale.x+center.x),(double) ((sine*delta.x+cosine*delta.y)/scale.y+center.y),q,exception); + if (status == MagickFalse) + break; } p+=GetPixelChannels(canvas); q+=GetPixelChannels(swirl_image); @@ -5709,6 +5717,8 @@ MagickExport Image *WaveImage(const Image *image,const double amplitude, { status=InterpolatePixelChannels(canvas,canvas_view,wave_image,method, (double) x,(double) (y-sine_map[x]),q,exception); + if (status == MagickFalse) + break; q+=GetPixelChannels(wave_image); } if (SyncCacheViewAuthenticPixels(wave_view,exception) == MagickFalse) diff --git a/MagickCore/resize.c b/MagickCore/resize.c index 63cce0fbf..573afd244 100644 --- a/MagickCore/resize.c +++ b/MagickCore/resize.c @@ -1804,6 +1804,8 @@ MagickExport Image *InterpolativeResizeImage(const Image *image, offset.x=((double) x+0.5)*scale.x-0.5; status=InterpolatePixelChannels(image,image_view,resize_image,method, offset.x,offset.y,q,exception); + if (status == MagickFalse) + break; } q+=GetPixelChannels(resize_image); }