From 77c30f505b9ddf45ec96709ab5ebcb7a10f96d4a Mon Sep 17 00:00:00 2001 From: cristy Date: Mon, 24 Oct 2011 18:56:57 +0000 Subject: [PATCH] --- MagickCore/pixel.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/MagickCore/pixel.c b/MagickCore/pixel.c index 2c0daa79f..6396c8259 100644 --- a/MagickCore/pixel.c +++ b/MagickCore/pixel.c @@ -3640,6 +3640,64 @@ MagickExport MagickBooleanType ImportImagePixels(Image *image, % o image: the image. % */ + +MagickExport void PendInitializePixelChannelMap(Image *image) +{ + register ssize_t + i; + + size_t + n; + + assert(image != (Image *) NULL); + assert(image->signature == MagickSignature); + for (i=0; i < (ssize_t) MaxPixelChannels; i++) + { + SetPixelChannelMapChannel(image,(PixelChannel) i,(PixelTrait) 0); + SetPixelChannelMapTraits(image,(PixelChannel) i,UndefinedPixelTrait); + } + n=0; + SetPixelChannelMapChannel(image,RedPixelChannel,(PixelTrait) n++); + SetPixelChannelMapTraits(image,RedPixelChannel,(PixelTrait) + (UpdatePixelTrait | BlendPixelTrait)); + SetPixelChannelMapChannel(image,GreenPixelChannel,(PixelTrait) n++); + SetPixelChannelMapTraits(image,GreenPixelChannel,(PixelTrait) + (UpdatePixelTrait | BlendPixelTrait)); + SetPixelChannelMapChannel(image,BluePixelChannel,(PixelTrait) n++); + SetPixelChannelMapTraits(image,BluePixelChannel,(PixelTrait) + (UpdatePixelTrait | BlendPixelTrait)); + if (image->colorspace == GRAYColorspace) + { + n=0; + SetPixelChannelMapChannel(image,RedPixelChannel,(PixelTrait) n); + SetPixelChannelMapChannel(image,GreenPixelChannel,(PixelTrait) n); + SetPixelChannelMapChannel(image,BluePixelChannel,(PixelTrait) n++); + } + if (image->colorspace == CMYKColorspace) + { + SetPixelChannelMapChannel(image,BlackPixelChannel,(PixelTrait) n++); + SetPixelChannelMapTraits(image,BlackPixelChannel,(PixelTrait) + (UpdatePixelTrait | BlendPixelTrait)); + } + if (image->storage_class == PseudoClass) + { + SetPixelChannelMapChannel(image,IndexPixelChannel,(PixelTrait) n++); + SetPixelChannelMapTraits(image,IndexPixelChannel,CopyPixelTrait); + } + if (image->matte != MagickFalse) + { + SetPixelChannelMapChannel(image,AlphaPixelChannel,(PixelTrait) n++); + SetPixelChannelMapTraits(image,AlphaPixelChannel,CopyPixelTrait); + } + n+=image->number_meta_channels; + for ( ; i < (ssize_t) n; i++) + SetPixelChannelMapTraits(image,(PixelChannel) i,CopyPixelTrait); + image->number_channels=n; + if (image->debug != MagickFalse) + LogPixelChannels(image); + (void) SetPixelChannelMask(image,image->channel_mask); +} + MagickExport void InitializePixelChannelMap(Image *image) { PixelChannel -- 2.40.0