From 3b3f68e112ce36989063ed9c0ac036c66f88de48 Mon Sep 17 00:00:00 2001 From: cristy <urban-warrior@git.imagemagick.org> Date: Fri, 17 Aug 2012 23:11:57 +0000 Subject: [PATCH] --- MagickCore/colorspace.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/MagickCore/colorspace.c b/MagickCore/colorspace.c index c8cbb69af..ff0ee29bc 100644 --- a/MagickCore/colorspace.c +++ b/MagickCore/colorspace.c @@ -171,6 +171,9 @@ static inline void ConvertXYZToLab(const double X,const double Y,const double Z, static inline void ConvertXYZToLuv(const double X,const double Y,const double Z, double *L,double *u,double *v) { + double + alpha; + assert(L != (double *) NULL); assert(u != (double *) NULL); assert(v != (double *) NULL); @@ -178,8 +181,9 @@ static inline void ConvertXYZToLuv(const double X,const double Y,const double Z, *L=(double) (116.0*pow(Y/D50Y,1/3.0)-16.0); else *L=CIEK*(Y/D50Y); - *u=13.0*(*L)*((4.0*X/(X+15.0*Y+3.0*Z))-(4.0*D50X/(D50X+15.0*D50Y+3.0*D50Z))); - *v=13.0*(*L)*((9.0*Y/(X+15.0*Y+3.0*Z))-(9.0*D50Y/(D50X+15.0*D50Y+3.0*D50Z))); + alpha=MagickEpsilonReciprocal(X+15.0*Y+3.0*Z); + *u=13.0*(*L)*((4.0*alpha*X)-(4.0*D50X/(D50X+15.0*D50Y+3.0*D50Z))); + *v=13.0*(*L)*((9.0*alpha*Y)-(9.0*D50Y/(D50X+15.0*D50Y+3.0*D50Z))); *L/=100.0; *u=(*u+134.0)/354.0; *v=(*v+140.0)/256.0; -- 2.40.0