]> granicus.if.org Git - imagemagick/commitdiff
...
authorCristy <urban-warrior@imagemagick.org>
Sun, 7 Jan 2018 23:57:25 +0000 (18:57 -0500)
committerCristy <urban-warrior@imagemagick.org>
Sun, 7 Jan 2018 23:57:25 +0000 (18:57 -0500)
MagickCore/composite.c
MagickCore/draw.c
MagickCore/effect.c
MagickCore/enhance.c
MagickCore/fx.c
MagickCore/resize.c

index 74f2a1b795d3041bd4a90c1ef23ea1bd62c7d1ba..764370729387fddd3b64d8dcaf330e779752ee5a 100644 (file)
@@ -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;
index 60930467a6662ba7a02882c07ee892dfff9610fc..68dbb747af1ed5479123c48dfbc3bf0be62c2cbb 100644 (file)
@@ -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);
index 0b004020ed8a724ddc2821fef8068376ce3903fe..6f55e353a2dd8c963a578c7b8278b6e7cbb29903 100644 (file)
@@ -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)
index 8a33cc7c8dd1d5406290f22c48aab06bcc813d9a..bfabe7f4d8521a91c817f2d6988ccccb1a66e604 100644 (file)
@@ -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);
index 4fab82f3e7138ce632b0a2cddd2d399e7590e7d2..954b69514e6dcd691c304f6d76bfafb69d0b1337 100644 (file)
@@ -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)
index 63cce0fbfe94650ca3e93df00cc36213847b0488..573afd2441a5c514ef50214fb3f021dbc39b716b 100644 (file)
@@ -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);
     }