From: dirk Date: Sat, 3 Sep 2016 18:31:21 +0000 (+0200) Subject: Fixed alpha channel issue. X-Git-Tag: 7.0.3-0~4 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0752ecfc8dc3cf421d968543f45c3ee88016e96b;p=imagemagick Fixed alpha channel issue. --- diff --git a/MagickCore/composite.c b/MagickCore/composite.c index 26c7c421b..8e70a7f95 100644 --- a/MagickCore/composite.c +++ b/MagickCore/composite.c @@ -559,7 +559,7 @@ MagickExport MagickBooleanType CompositeImage(Image *image, assert(image->signature == MagickCoreSignature); if (image->debug != MagickFalse) (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename); - assert(composite!= (Image *) NULL); + assert(composite != (Image *) NULL); assert(composite->signature == MagickCoreSignature); if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse) return(MagickFalse); @@ -1507,24 +1507,8 @@ MagickExport MagickBooleanType CompositeImage(Image *image, if (traits == UndefinedPixelTrait) continue; if ((source_traits == UndefinedPixelTrait) && - (((compose != CopyAlphaCompositeOp) && - (compose != ChangeMaskCompositeOp)) || - (channel != AlphaPixelChannel))) + (channel != AlphaPixelChannel)) continue; - /* - Sc: source color. - Dc: canvas color. - */ - Sc=(MagickRealType) GetPixelChannel(source_image,channel,p); - Dc=(MagickRealType) q[i]; - if ((traits & CopyPixelTrait) != 0) - { - /* - Copy channel. - */ - q[i]=Sc; - continue; - } if (channel == AlphaPixelChannel) { /* @@ -1642,6 +1626,20 @@ MagickExport MagickBooleanType CompositeImage(Image *image, ClampToQuantum(pixel); continue; } + /* + Sc: source color. + Dc: canvas color. + */ + Sc=(MagickRealType) GetPixelChannel(source_image,channel,p); + Dc=(MagickRealType) q[i]; + if ((traits & CopyPixelTrait) != 0) + { + /* + Copy channel. + */ + q[i]=Sc; + continue; + } /* Porter-Duff compositions: Sca: source normalized color multiplied by alpha.