]> granicus.if.org Git - imagemagick/commitdiff
Added MagickCompositeImageGravity.
authordirk <dirk@git.imagemagick.org>
Sun, 28 Jun 2015 15:49:28 +0000 (15:49 +0000)
committerdirk <dirk@git.imagemagick.org>
Sun, 28 Jun 2015 15:49:28 +0000 (15:49 +0000)
MagickWand/magick-image.c
MagickWand/magick-image.h

index 36a07d4630c78eef0d8391198988c8505757aaad..376488232deac123097e3dc1458e885f9d7e4443 100644 (file)
@@ -1893,6 +1893,73 @@ WandExport MagickBooleanType MagickCompositeImage(MagickWand *wand,
 %                                                                             %
 %                                                                             %
 %                                                                             %
+%   M a g i c k C o m p o s i t e I m a g e G r a v i t y                     %
+%                                                                             %
+%                                                                             %
+%                                                                             %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%  MagickCompositeImageGravity() composite one image onto another using the
+%  specified gravity.
+%
+%  The format of the MagickCompositeImageGravity method is:
+%
+%      MagickBooleanType MagickCompositeImageGravity(MagickWand *wand,
+%        const MagickWand *source_wand,const CompositeOperator compose,
+%        const GravityType gravity)
+%
+%  A description of each parameter follows:
+%
+%    o wand: the magick wand holding the destination images
+%
+%    o source_image: the magick wand holding source image.
+%
+%    o compose: This operator affects how the composite is applied to the
+%      image.  The default is Over.  These are some of the compose methods
+%      availble.
+%
+%        OverCompositeOp       InCompositeOp         OutCompositeOp
+%        AtopCompositeOp       XorCompositeOp        PlusCompositeOp
+%        MinusCompositeOp      AddCompositeOp        SubtractCompositeOp
+%        DifferenceCompositeOp BumpmapCompositeOp    CopyCompositeOp
+%        DisplaceCompositeOp
+%
+%    o gravity: positioning gravity (NorthWestGravity, NorthGravity,
+%               NorthEastGravity, WestGravity, CenterGravity,
+%               EastGravity, SouthWestGravity, SouthGravity,
+%               SouthEastGravity)
+%
+*/
+WandExport MagickBooleanType MagickCompositeImageGravity(MagickWand *wand,
+  const MagickWand *source_wand,const CompositeOperator compose,
+  const GravityType gravity)
+{
+  MagickBooleanType
+    status;
+
+  RectangleInfo
+    geometry;
+
+  assert(wand != (MagickWand *) NULL);
+  assert(wand->signature == MagickWandSignature);
+  if (IfMagickTrue(wand->debug))
+    (void) LogMagickEvent(WandEvent,GetMagickModule(),"%s",wand->name);
+  if ((wand->images == (Image *) NULL) ||
+      (source_wand->images == (Image *) NULL))
+    ThrowWandException(WandError,"ContainsNoImages",wand->name);
+  SetGeometry(source_wand->images,&geometry);
+  GravityAdjustGeometry(wand->images->columns,wand->images->rows,gravity,
+    &geometry);
+  status=CompositeImage(wand->images,source_wand->images,compose,MagickTrue,
+    geometry.x,geometry.y,wand->exception);
+  return(status);
+}
+\f
+/*
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%                                                                             %
+%                                                                             %
+%                                                                             %
 %   M a g i c k C o m p o s i t e L a y e r s                                 %
 %                                                                             %
 %                                                                             %
@@ -9679,8 +9746,10 @@ WandExport MagickBooleanType MagickSetImageGamma(MagickWand *wand,
 %
 %    o wand: the magick wand.
 %
-%    o gravity: the image interlace scheme: NoInterlace, LineInterlace,
-%      PlaneInterlace, PartitionInterlace.
+%    o gravity: positioning gravity (NorthWestGravity, NorthGravity,
+%               NorthEastGravity, WestGravity, CenterGravity,
+%               EastGravity, SouthWestGravity, SouthGravity,
+%               SouthEastGravity)
 %
 */
 WandExport MagickBooleanType MagickSetImageGravity(MagickWand *wand,
index a0330f8f1221300373cac6aee52a98d69d2f2ee4..589cb35d2a5707c662d597f440c328f2c8fcde20 100644 (file)
@@ -110,6 +110,8 @@ extern WandExport MagickBooleanType
   MagickCommentImage(MagickWand *,const char *),
   MagickCompositeImage(MagickWand *,const MagickWand *,const CompositeOperator,
     const MagickBooleanType,const ssize_t,const ssize_t),
+  MagickCompositeImageGravity(MagickWand *,const MagickWand *,const CompositeOperator,
+    const GravityType),
   MagickCompositeLayers(MagickWand *,const MagickWand *,const CompositeOperator,
     const ssize_t,const ssize_t),
   MagickConstituteImage(MagickWand *,const size_t,const size_t,const char *,