From 2e8aa40d68320d3b29ddf9717666684f9ad13d1e Mon Sep 17 00:00:00 2001 From: Cristy Date: Sun, 25 Feb 2018 09:41:51 -0500 Subject: [PATCH] ... --- MagickCore/draw.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/MagickCore/draw.c b/MagickCore/draw.c index 8842d1ce7..a1a9a0ec4 100644 --- a/MagickCore/draw.c +++ b/MagickCore/draw.c @@ -2060,13 +2060,17 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info, } if (LocaleCompare("fill-opacity",keyword) == 0) { + double + opacity; + GetNextToken(q,&q,extent,token); factor=strchr(token,'%') != (char *) NULL ? 0.01 : 1.0; - graphic_context[n]->fill_alpha=(MagickRealType) (QuantumRange- - ClampToQuantum((MagickRealType) QuantumRange*(1.0-factor* - StringToDouble(token,&next_token)))); + opacity=MagickMin(MagickMax(factor* + StringToDouble(token,&next_token),0.0),1.0); if (token == next_token) ThrowPointExpectedException(token,exception); + graphic_context[n]->fill_alpha=(MagickRealType) (QuantumRange- + QuantumRange*(1.0-opacity)); break; } if (LocaleCompare("fill-rule",keyword) == 0) @@ -2750,13 +2754,17 @@ MagickExport MagickBooleanType DrawImage(Image *image,const DrawInfo *draw_info, } if (LocaleCompare("stroke-opacity",keyword) == 0) { + double + opacity; + GetNextToken(q,&q,extent,token); factor=strchr(token,'%') != (char *) NULL ? 0.01 : 1.0; - graphic_context[n]->stroke_alpha=(MagickRealType) (QuantumRange- - ClampToQuantum((MagickRealType) QuantumRange*(1.0-factor* - StringToDouble(token,&next_token)))); + opacity=MagickMin(MagickMax(factor* + StringToDouble(token,&next_token),0.0),1.0); if (token == next_token) ThrowPointExpectedException(token,exception); + graphic_context[n]->stroke_alpha=(MagickRealType) (QuantumRange- + QuantumRange*(1.0-opacity)); break; } if (LocaleCompare("stroke-width",keyword) == 0) -- 2.40.0