From: Cristy Date: Sun, 5 Aug 2018 21:43:16 +0000 (-0400) Subject: ... X-Git-Tag: 7.0.8-9~5 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5bfff979188fdf075df37be71f689d5ff9a65f83;p=imagemagick ... --- diff --git a/coders/mat.c b/coders/mat.c index d3a2db86b..b1f4f1aac 100644 --- a/coders/mat.c +++ b/coders/mat.c @@ -204,15 +204,16 @@ static void InsertComplexDoubleRow(Image *image,double *p,int y,double MinVal, SetPixelRed(image,QuantumRange,q); else SetPixelRed(image,GetPixelRed(image,q)+(int) f,q); - if ((int) f / 2.0 > GetPixelGreen(image,q)) + f = GetPixelGreen(image,q)-f/2.0; + if (f <= 0.0) { SetPixelGreen(image,0,q); SetPixelBlue(image,0,q); } else { - SetPixelBlue(image,GetPixelBlue(image,q)-(int) (f/2.0),q); - SetPixelGreen(image,GetPixelBlue(image,q),q); + SetPixelBlue(image,f,q); + SetPixelGreen(image,f,q); } } if (*p < 0) @@ -221,16 +222,17 @@ static void InsertComplexDoubleRow(Image *image,double *p,int y,double MinVal, if (f+GetPixelBlue(image,q) > QuantumRange) SetPixelBlue(image,QuantumRange,q); else - SetPixelBlue(image,GetPixelBlue(image,q)+(int) f,q); - if ((int) f / 2.0 > GetPixelGreen(image,q)) + SetPixelBlue(image,GetPixelBlue(image,q)+ClampToQuantum(f),q); + f = GetPixelGreen(image,q)-f/2.0; + if (f <= 0.0) { SetPixelRed(image,0,q); SetPixelGreen(image,0,q); } else { - SetPixelRed(image,GetPixelRed(image,q)-(int) (f/2.0),q); - SetPixelGreen(image,GetPixelRed(image,q),q); + SetPixelRed(image,ClampToQuantum(f),q); + SetPixelGreen(image,ClampToQuantum(f),q); } } p++;