From: dirk Date: Sun, 28 Jun 2015 15:49:28 +0000 (+0000) Subject: Added MagickCompositeImageGravity. X-Git-Tag: 7.0.1-0~830 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=675b1c7f6fa2ee4c235fb50273bbaf398fe73dfc;p=imagemagick Added MagickCompositeImageGravity. --- diff --git a/MagickWand/magick-image.c b/MagickWand/magick-image.c index 36a07d463..376488232 100644 --- a/MagickWand/magick-image.c +++ b/MagickWand/magick-image.c @@ -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); +} + +/* +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% % +% % % 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, diff --git a/MagickWand/magick-image.h b/MagickWand/magick-image.h index a0330f8f1..589cb35d2 100644 --- a/MagickWand/magick-image.h +++ b/MagickWand/magick-image.h @@ -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 *,