From: Cristy Date: Fri, 3 Feb 2017 20:33:27 +0000 (-0500) Subject: ... X-Git-Tag: 7.0.4-7~2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fb9a8d5f2287eac1fbf4ef4ab09a7ed05f049d01;p=imagemagick ... --- diff --git a/MagickCore/channel.c b/MagickCore/channel.c index ca3811a0a..4c2decc43 100644 --- a/MagickCore/channel.c +++ b/MagickCore/channel.c @@ -356,6 +356,40 @@ MagickExport Image *ChannelFxImage(const Image *image,const char *expression, (void) SetPixelMetaChannels(destination_image,(size_t) ( destination_channel-GetPixelChannels(destination_image)+1), exception); + if (image->colorspace != UndefinedColorspace) + switch (destination_channel) + { + case RedPixelChannel: + case GreenPixelChannel: + case BluePixelChannel: + case BlackPixelChannel: + case IndexPixelChannel: + break; + case AlphaPixelChannel: + { + if (image->colorspace != UndefinedColorspace) + destination_image->alpha_trait=BlendPixelTrait; + break; + } + case ReadMaskPixelChannel: + { + destination_image->read_mask=MagickTrue; + break; + } + case WriteMaskPixelChannel: + { + destination_image->write_mask=MagickTrue; + break; + } + case MetaPixelChannel: + default: + { + (void) SetPixelMetaChannels(destination_image,(size_t) ( + destination_channel-GetPixelChannels(destination_image)+1), + exception); + break; + } + } channel_mask=(ChannelType) (channel_mask | ParseChannelOption(token)); if (((channels >= 1) || (destination_channel >= 1)) && (IsGrayColorspace(destination_image->colorspace) != MagickFalse))