]> granicus.if.org Git - imagemagick/commitdiff
https://github.com/ImageMagick/ImageMagick/issues/1157
authorCristy <urban-warrior@imagemagick.org>
Sun, 8 Jul 2018 16:02:07 +0000 (12:02 -0400)
committerCristy <urban-warrior@imagemagick.org>
Sun, 8 Jul 2018 16:02:58 +0000 (12:02 -0400)
MagickWand/composite.c
MagickWand/mogrify.c
MagickWand/operation.c

index 0671b67911f864534f3b2f038ee693e24fd747ab..7bb8fda316df85bcf73dbbd2cbc429cc77713300 100644 (file)
@@ -70,6 +70,7 @@ typedef struct _CompositeOptions
     offset;
 
   MagickBooleanType
+    clip_to_self,
     stereo,
     tile;
 } CompositeOptions;
@@ -197,7 +198,8 @@ static MagickBooleanType CompositeImageList(ImageInfo *image_info,Image **image,
               for (y=0; y < (ssize_t) (*image)->rows; y+=(ssize_t) composite_image->rows)
                 for (x=0; x < (ssize_t) (*image)->columns; x+=(ssize_t) columns)
                   status&=CompositeImage(*image,composite_image,
-                    composite_options->compose,MagickTrue,x,y,exception);
+                    composite_options->compose,composite_options->clip_to_self,
+                      x,y,exception);
             }
           else
             {
@@ -219,8 +221,8 @@ static MagickBooleanType CompositeImageList(ImageInfo *image_info,Image **image,
                 Digitally composite image.
               */
               status&=CompositeImage(*image,composite_image,
-                composite_options->compose,MagickTrue,geometry.x,geometry.y,
-                exception);
+                composite_options->compose,composite_options->clip_to_self,
+                geometry.x,geometry.y,exception);
             }
       (void) SetPixelChannelMask(composite_image,channel_mask);
     }
@@ -370,11 +372,21 @@ static MagickBooleanType CompositeUsage(void)
   return(MagickFalse);
 }
 
-static void GetCompositeOptions(CompositeOptions *composite_options)
+static void GetCompositeOptions(const ImageInfo *image_info,
+  CompositeOptions *composite_options)
 {
+  const char
+    *value;
+
   (void) memset(composite_options,0,sizeof(*composite_options));
   composite_options->channel=DefaultChannels;
   composite_options->compose=OverCompositeOp;
+  value=GetImageOption(image_info,"compose:clip-to-self");
+  if (value != (const char *) NULL)
+    composite_options->clip_to_self=IsStringTrue(value);
+  value=GetImageOption(image_info,"compose:outside-overlay");
+  if (value != (const char *) NULL)
+    composite_options->clip_to_self=IsStringFalse(value);  /* deprecated */
 }
 
 static void RelinquishCompositeOptions(CompositeOptions *composite_options)
@@ -468,7 +480,7 @@ WandExport MagickBooleanType CompositeImageCommand(ImageInfo *image_info,
     }
   if (argc < 4)
     return(CompositeUsage());
-  GetCompositeOptions(&composite_options);
+  GetCompositeOptions(image_info,&composite_options);
   filename=(char *) NULL;
   format="%w,%h,%m";
   j=1;
index 92c4815f0e81f9974de1ea1a2b14408f9bfa7230..ff00e130bff29b00f3f5955df359c3667059262f 100644 (file)
@@ -7926,17 +7926,13 @@ WandExport MagickBooleanType MogrifyImageList(ImageInfo *image_info,
                 MagickComposeOptions,MagickFalse,value);
 
             /* Get "clip-to-self" expert setting (false is normal) */
+            clip_to_self=MagickFalse;
             value=GetImageOption(mogrify_info,"compose:clip-to-self");
-            if (value == (const char *) NULL)
-              clip_to_self=MagickTrue;
-            else
-              clip_to_self=IsStringTrue(GetImageOption(mogrify_info,
-                "compose:clip-to-self")); /* if this is true */
+            if (value != (const char *) NULL)
+              clip_to_self=IsStringTrue(value);
             value=GetImageOption(mogrify_info,"compose:outside-overlay");
-            if (value != (const char *) NULL) {   /* or this false */
-              /* FUTURE: depreciate warning for "compose:outside-overlay"*/
-              clip_to_self=IsStringFalse(value);
-            }
+            if (value != (const char *) NULL)
+              clip_to_self=IsStringFalse(value);  /* deprecated */
 
             new_images=RemoveFirstImageFromList(images);
             source_image=RemoveFirstImageFromList(images);
index 7d758967933cfda2a675d9626595d06992bf482e..30a88bebe534d917f5dcd23fcda9bd7833f3ea6c 100644 (file)
@@ -3881,17 +3881,13 @@ WandPrivate MagickBooleanType CLIListOperatorImages(MagickCLI *cli_wand,
               MagickFalse,value);
 
           /* Get "clip-to-self" expert setting (false is normal) */
+          clip_to_self=MagickFalse;
           value=GetImageOption(_image_info,"compose:clip-to-self");
-          if (value == (const char *) NULL)
-            clip_to_self=MagickTrue;
-          else
-            clip_to_self=IsStringTrue(GetImageOption(_image_info,
-              "compose:clip-to-self")); /* if this is true */
+          if (value != (const char *) NULL)
+            clip_to_self=IsStringTrue(value);
           value=GetImageOption(_image_info,"compose:outside-overlay");
-          if (value != (const char *) NULL) {   /* or this false */
-            /* FUTURE: depreciate warning for "compose:outside-overlay"*/
-            clip_to_self=IsStringFalse(value);
-          }
+          if (value != (const char *) NULL)
+            clip_to_self=IsStringFalse(value);  /* deprecated */
 
           new_images=RemoveFirstImageFromList(&_images);
           source_image=RemoveFirstImageFromList(&_images);