offset;
MagickBooleanType
+ clip_to_self,
stereo,
tile;
} CompositeOptions;
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
{
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);
}
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)
}
if (argc < 4)
return(CompositeUsage());
- GetCompositeOptions(&composite_options);
+ GetCompositeOptions(image_info,&composite_options);
filename=(char *) NULL;
format="%w,%h,%m";
j=1;
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);
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);