From f570091c9293ee26d70444a571592e98691badb5 Mon Sep 17 00:00:00 2001 From: Cristy Date: Tue, 15 May 2018 19:37:30 -0400 Subject: [PATCH] The -clip option stopped working, fixed --- MagickCore/cache.c | 19 +++++++++++-------- MagickCore/draw.c | 8 ++++++-- MagickCore/image.c | 2 +- configure | 2 +- 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/MagickCore/cache.c b/MagickCore/cache.c index 81b8af70d..a036f8b2f 100644 --- a/MagickCore/cache.c +++ b/MagickCore/cache.c @@ -451,15 +451,18 @@ static MagickBooleanType ClipPixelCacheNexus(Image *image, break; mask_alpha=QuantumScale*GetPixelWriteMask(image,p); if (fabs(mask_alpha) >= MagickEpsilon) - for (i=0; i < (ssize_t) image->number_channels; i++) { - PixelChannel channel = GetPixelChannelChannel(image,i); - PixelTrait traits = GetPixelChannelTraits(image,channel); - if ((traits & UpdatePixelTrait) == 0) - continue; - q[i]=ClampToQuantum(MagickOver_((double) p[i],mask_alpha* - GetPixelAlpha(image,p),(double) q[i],(double) - GetPixelAlpha(image,q))); + for (i=0; i < (ssize_t) image->number_channels; i++) + { + PixelChannel channel = GetPixelChannelChannel(image,i); + PixelTrait traits = GetPixelChannelTraits(image,channel); + if ((traits & UpdatePixelTrait) == 0) + continue; + q[i]=ClampToQuantum(MagickOver_((double) p[i],mask_alpha* + GetPixelAlpha(image,p),(double) q[i],(double) + GetPixelAlpha(image,q))); + } + SetPixelAlpha(image,GetPixelAlpha(image,p),q); } p+=GetPixelChannels(image); q+=GetPixelChannels(image); diff --git a/MagickCore/draw.c b/MagickCore/draw.c index a53779c72..c6d73d97e 100644 --- a/MagickCore/draw.c +++ b/MagickCore/draw.c @@ -2439,6 +2439,12 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info, (void) LogMagickEvent(DrawEvent,GetMagickModule(),"begin draw-image"); if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse) return(MagickFalse); + if (image->alpha_trait == UndefinedPixelTrait) + { + status=SetImageAlphaChannel(image,OpaqueAlphaChannel,exception); + if (status == MagickFalse) + return(status); + } primitive=(char *) NULL; if (*draw_info->primitive != '@') primitive=AcquireString(draw_info->primitive); @@ -4695,8 +4701,6 @@ RestoreMSCWarning /* Draw polygon or line. */ - if (image->alpha_trait == UndefinedPixelTrait) - (void) SetImageAlphaChannel(image,OpaqueAlphaChannel,exception); start_y=(ssize_t) ceil(bounds.y1-0.5); stop_y=(ssize_t) floor(bounds.y2+0.5); #if defined(MAGICKCORE_OPENMP_SUPPORT) diff --git a/MagickCore/image.c b/MagickCore/image.c index 837c087c8..21be905c5 100644 --- a/MagickCore/image.c +++ b/MagickCore/image.c @@ -743,7 +743,7 @@ MagickExport MagickBooleanType ClipImagePath(Image *image,const char *pathname, if (SetImageStorageClass(clip_mask,DirectClass,exception) == MagickFalse) return(MagickFalse); } - if (inside != MagickFalse) + if (inside == MagickFalse) (void) NegateImage(clip_mask,MagickFalse,exception); (void) FormatLocaleString(clip_mask->magick_filename,MagickPathExtent, "8BIM:1999,2998:%s\nPS",pathname); diff --git a/configure b/configure index fde729ba8..f12e32af4 100755 --- a/configure +++ b/configure @@ -4554,7 +4554,7 @@ MAGICK_PATCHLEVEL_VERSION=33 MAGICK_VERSION=7.0.7-33 -MAGICK_GIT_REVISION=14318:9de21a759:20180515 +MAGICK_GIT_REVISION=14321:8e0117484:20180515 # Substitute library versioning -- 2.40.0