status&=CompositeImage(composite_image,mask_image,
CopyGreenCompositeOp,MagickTrue,0,0,exception);
else
- status&=CompositeImage(composite_image,mask_image,
- IntensityCompositeOp,MagickTrue,0,0,exception);
+ {
+ Image
+ *image;
+
+ RectangleInfo
+ composite_geometry;
+
+ composite_geometry.width=mask_image->columns;
+ composite_geometry.height=mask_image->rows;
+ composite_geometry.x=(-geometry.x);
+ composite_geometry.y=(-geometry.y);
+ geometry.x=0;
+ geometry.y=0;
+ image=ExtentImage(composite_image,&composite_geometry,
+ exception);
+ if (image != (Image *) NULL)
+ {
+ composite_image=DestroyImage(composite_image);
+ composite_image=image;
+ }
+ status&=CompositeImage(composite_image,mask_image,
+ IntensityCompositeOp,MagickTrue,0,0,exception);
+ }
mask_image=DestroyImage(mask_image);
}
(void) CompositeImage(image,composite_image,image->compose,
status&=CompositeImage(source_image,mask_image,
CopyGreenCompositeOp,MagickTrue,0,0,_exception);
else
- status&=CompositeImage(source_image,mask_image,
- IntensityCompositeOp,MagickTrue,0,0,_exception);
+ {
+ Image
+ *image;
+
+ RectangleInfo
+ source_geometry;
+
+ source_geometry.width=mask_image->columns;
+ source_geometry.height=mask_image->rows;
+ source_geometry.x=(-geometry.x);
+ source_geometry.y=(-geometry.y);
+ geometry.x=0;
+ geometry.y=0;
+ image=ExtentImage(source_image,&source_geometry,_exception);
+ if (image != (Image *) NULL)
+ {
+ source_image=DestroyImage(source_image);
+ source_image=image;
+ }
+ status&=CompositeImage(source_image,mask_image,
+ IntensityCompositeOp,MagickTrue,0,0,_exception);
+ }
mask_image=DestroyImage(mask_image);
}
status&=CompositeImage(new_images,source_image,compose,clip_to_self,