From 434ce8a41602615a955839cec5cc3d1b0665806c Mon Sep 17 00:00:00 2001 From: dirk Date: Sun, 17 Aug 2014 08:33:47 +0000 Subject: [PATCH] Added check for pixel order and availability. --- MagickCore/accelerate.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/MagickCore/accelerate.c b/MagickCore/accelerate.c index 2d4ac3587..908478076 100644 --- a/MagickCore/accelerate.c +++ b/MagickCore/accelerate.c @@ -62,6 +62,7 @@ Include declarations. #include "MagickCore/opencl.h" #include "MagickCore/opencl-private.h" #include "MagickCore/option.h" +#include "MagickCore/pixel-accessor.h" #include "MagickCore/pixel-private.h" #include "MagickCore/prepress.h" #include "MagickCore/quantize.h" @@ -152,6 +153,20 @@ static MagickBooleanType checkAccelerateCondition(const Image* image, if (image->read_mask != MagickFalse || image->write_mask != MagickFalse) return(MagickFalse); + /* check if pixel order is RGBA */ + if (GetPixelChannelOffset(image,RedPixelChannel) != 0 || + GetPixelChannelOffset(image,GreenPixelChannel) != 1 || + GetPixelChannelOffset(image,BluePixelChannel) != 2 || + GetPixelChannelOffset(image,AlphaPixelChannel) != 3) + return(MagickFalse); + + /* check if all channels are available */ + if (((GetPixelRedTraits(image) & UpdatePixelTrait) == 0) || + ((GetPixelGreenTraits(image) & UpdatePixelTrait) == 0) || + ((GetPixelBlueTraits(image) & UpdatePixelTrait) == 0) || + ((GetPixelAlphaTraits(image) & UpdatePixelTrait) == 0)) + return(MagickFalse); + return(MagickTrue); } -- 2.40.0