From: cristy Date: Sun, 10 Feb 2013 02:36:22 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~4270 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a476439fa0a638fb8d6e4d8120867a24764c6585;p=imagemagick --- diff --git a/MagickCore/decorate.c b/MagickCore/decorate.c index cbac0e502..93f96a006 100644 --- a/MagickCore/decorate.c +++ b/MagickCore/decorate.c @@ -448,16 +448,29 @@ MagickExport Image *FrameImage(const Image *image,const FrameInfo *frame_info, } for (x=0; x < (ssize_t) image->columns; x++) { - if ((GetPixelRedTraits(image) & UpdatePixelTrait) != 0) - SetPixelRed(frame_image,GetPixelRed(image,p),q); - if ((GetPixelGreenTraits(image) & UpdatePixelTrait) != 0) - SetPixelGreen(frame_image,GetPixelGreen(image,p),q); - if ((GetPixelBlueTraits(image) & UpdatePixelTrait) != 0) - SetPixelBlue(frame_image,GetPixelBlue(image,p),q); - if ((GetPixelBlackTraits(image) & UpdatePixelTrait) != 0) - SetPixelBlack(frame_image,GetPixelBlack(image,p),q); - if ((GetPixelAlphaTraits(image) & UpdatePixelTrait) != 0) - SetPixelAlpha(frame_image,GetPixelAlpha(image,p),q); + register ssize_t + i; + + if (GetPixelMask(image,q) != 0) + { + p+=GetPixelChannels(image); + q+=GetPixelChannels(frame_image); + continue; + } + for (i=0; i < (ssize_t) GetPixelChannels(image); i++) + { + PixelChannel + channel; + + PixelTrait + traits; + + channel=GetPixelChannelChannel(image,i); + traits=GetPixelChannelTraits(image,channel); + if ((traits & (CopyPixelTrait | UpdatePixelTrait)) == 0) + continue; + q[i]=p[i]; + } p+=GetPixelChannels(image); q+=GetPixelChannels(frame_image); }