From 4e46ad9dd95d68c1c8c630e6d27338ae3f57d5c7 Mon Sep 17 00:00:00 2001 From: Cristy Date: Tue, 12 Sep 2017 07:02:58 -0400 Subject: [PATCH] https://www.imagemagick.org/discourse-server/viewtopic.php?f=3&t=32667 --- MagickCore/statistic.c | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/MagickCore/statistic.c b/MagickCore/statistic.c index ae4ecaf0b..16b9694a1 100644 --- a/MagickCore/statistic.c +++ b/MagickCore/statistic.c @@ -416,6 +416,31 @@ static double ApplyEvaluateOperator(RandomInfo *random_info,const Quantum pixel, return(result); } +static Image *AcquireImageCanvas(const Image *images,ExceptionInfo *exception) +{ + const Image + *p, + *q; + + size_t + columns, + rows; + + q=images; + columns=images->columns; + rows=images->rows; + for (p=images; p != (Image *) NULL; p=p->next) + { + if (p->number_channels > q->number_channels) + q=p; + if (p->columns > columns) + columns=p->columns; + if (p->rows > rows) + rows=p->rows; + } + return(CloneImage(q,columns,rows,MagickTrue,exception)); +} + MagickExport Image *EvaluateImages(const Image *images, const MagickEvaluateOperator op,ExceptionInfo *exception) { @@ -456,8 +481,7 @@ MagickExport Image *EvaluateImages(const Image *images, (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",images->filename); assert(exception != (ExceptionInfo *) NULL); assert(exception->signature == MagickCoreSignature); - image=CloneImage(images,images->columns,images->rows,MagickTrue, - exception); + image=AcquireImageCanvas(images,exception); if (image == (Image *) NULL) return((Image *) NULL); if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse) @@ -2187,8 +2211,7 @@ MagickExport Image *PolynomialImage(const Image *images, (void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",images->filename); assert(exception != (ExceptionInfo *) NULL); assert(exception->signature == MagickCoreSignature); - image=CloneImage(images,images->columns,images->rows,MagickTrue, - exception); + image=AcquireImageCanvas(images,exception); if (image == (Image *) NULL) return((Image *) NULL); if (SetImageStorageClass(image,DirectClass,exception) == MagickFalse) -- 2.50.1