From f1ae7f6111752ee386ddd475ad210eca69730253 Mon Sep 17 00:00:00 2001 From: Cristy Date: Sun, 14 Jan 2018 14:14:19 -0500 Subject: [PATCH] ... --- MagickCore/pixel-accessor.h | 58 +++++++++++++++++++++++-------------- MagickCore/pixel.c | 6 +--- 2 files changed, 37 insertions(+), 27 deletions(-) diff --git a/MagickCore/pixel-accessor.h b/MagickCore/pixel-accessor.h index a1e6424b7..cd16fd07b 100644 --- a/MagickCore/pixel-accessor.h +++ b/MagickCore/pixel-accessor.h @@ -377,33 +377,47 @@ static inline PixelTrait GetPixelRedTraits(const Image *magick_restrict image) static inline void GetPixelInfoPixel(const Image *magick_restrict image, const Quantum *magick_restrict pixel,PixelInfo *magick_restrict pixel_info) { - pixel_info->storage_class=image->storage_class; - pixel_info->colorspace=image->colorspace; - pixel_info->fuzz=image->fuzz; - pixel_info->depth=image->depth; - pixel_info->red=(MagickRealType) - pixel[image->channel_map[RedPixelChannel].offset]; - pixel_info->green=(MagickRealType) - pixel[image->channel_map[GreenPixelChannel].offset]; - pixel_info->blue=(MagickRealType) - pixel[image->channel_map[BluePixelChannel].offset]; + pixel_info->storage_class=DirectClass; + pixel_info->colorspace=sRGBColorspace; + pixel_info->fuzz=0.0f; + pixel_info->depth=MAGICKCORE_QUANTUM_DEPTH; + pixel_info->red=0.0f; + pixel_info->green=0.0f; + pixel_info->blue=0.0f; pixel_info->black=0.0f; - if (image->channel_map[BlackPixelChannel].traits != UndefinedPixelTrait) - pixel_info->black=(MagickRealType) - pixel[image->channel_map[BlackPixelChannel].offset]; - pixel_info->alpha=(MagickRealType) OpaqueAlpha; + pixel_info->index=0.0f; pixel_info->alpha_trait=UndefinedPixelTrait; - if (image->channel_map[AlphaPixelChannel].traits != UndefinedPixelTrait) + pixel_info->alpha=(MagickRealType) OpaqueAlpha; + pixel_info->count=0; + if (image != (Image *) NULL) { - pixel_info->alpha=(MagickRealType) - pixel[image->channel_map[AlphaPixelChannel].offset]; - pixel_info->alpha_trait=BlendPixelTrait; + pixel_info->storage_class=image->storage_class; + pixel_info->colorspace=image->colorspace; + pixel_info->fuzz=image->fuzz; + pixel_info->depth=image->depth; + pixel_info->alpha_trait=image->alpha_trait; } - pixel_info->index=0.0f; - if (image->channel_map[IndexPixelChannel].traits != UndefinedPixelTrait) - pixel_info->index=(MagickRealType) + if (pixel != (Quantum *) NULL) + { + pixel_info->red=(MagickRealType) + pixel[image->channel_map[RedPixelChannel].offset]; + pixel_info->green=(MagickRealType) + pixel[image->channel_map[GreenPixelChannel].offset]; + pixel_info->blue=(MagickRealType) + pixel[image->channel_map[BluePixelChannel].offset]; + if (image->channel_map[BlackPixelChannel].traits != UndefinedPixelTrait) + pixel_info->black=(MagickRealType) + pixel[image->channel_map[BlackPixelChannel].offset]; + if (image->channel_map[AlphaPixelChannel].traits != UndefinedPixelTrait) + { + pixel_info->alpha=(MagickRealType) + pixel[image->channel_map[AlphaPixelChannel].offset]; + pixel_info->alpha_trait=BlendPixelTrait; + } + if (image->channel_map[IndexPixelChannel].traits != UndefinedPixelTrait) + pixel_info->index=(MagickRealType) pixel[image->channel_map[IndexPixelChannel].offset]; - pixel_info->count=0; + } } static inline PixelTrait GetPixelTraits(const Image *magick_restrict image, diff --git a/MagickCore/pixel.c b/MagickCore/pixel.c index ada5d38a7..de90ffa51 100644 --- a/MagickCore/pixel.c +++ b/MagickCore/pixel.c @@ -5512,6 +5512,7 @@ MagickExport MagickBooleanType InterpolatePixelInfo(const Image *image, interpolate=method; if (interpolate == UndefinedInterpolatePixel) interpolate=image->interpolate; + GetPixelInfoPixel(image,(const Quantum *) NULL,pixel); (void) ResetMagickMemory(&pixels,0,sizeof(pixels)); switch (interpolate) { @@ -5542,11 +5543,6 @@ MagickExport MagickBooleanType InterpolatePixelInfo(const Image *image, status=MagickFalse; break; } - pixel->red=0.0; - pixel->green=0.0; - pixel->blue=0.0; - pixel->black=0.0; - pixel->alpha=0.0; count*=count; /* number of pixels - square of size */ for (i=0; i < (ssize_t) count; i++) { -- 2.40.0