From: cristy Date: Wed, 14 Apr 2010 13:22:18 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~9649 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8a6a980ae74d5d50c853d2a8f71a8f0af08446ef;p=imagemagick --- diff --git a/magick/gem.c b/magick/gem.c index 278360ba0..d1f7ee50a 100644 --- a/magick/gem.c +++ b/magick/gem.c @@ -100,7 +100,7 @@ MagickExport void ConvertHSBToRGB(const double hue,const double saturation, assert(blue != (Quantum *) NULL); if (saturation == 0.0) { - *red=ClampToQuantum((MagickRealType) QuantumRange*brightness); + *red=KlampToQuantum((MagickRealType) QuantumRange*brightness); *green=(*red); *blue=(*red); return; @@ -115,44 +115,44 @@ MagickExport void ConvertHSBToRGB(const double hue,const double saturation, case 0: default: { - *red=ClampToQuantum((MagickRealType) QuantumRange*brightness); - *green=ClampToQuantum((MagickRealType) QuantumRange*t); - *blue=ClampToQuantum((MagickRealType) QuantumRange*p); + *red=KlampToQuantum((MagickRealType) QuantumRange*brightness); + *green=KlampToQuantum((MagickRealType) QuantumRange*t); + *blue=KlampToQuantum((MagickRealType) QuantumRange*p); break; } case 1: { - *red=ClampToQuantum((MagickRealType) QuantumRange*q); - *green=ClampToQuantum((MagickRealType) QuantumRange*brightness); - *blue=ClampToQuantum((MagickRealType) QuantumRange*p); + *red=KlampToQuantum((MagickRealType) QuantumRange*q); + *green=KlampToQuantum((MagickRealType) QuantumRange*brightness); + *blue=KlampToQuantum((MagickRealType) QuantumRange*p); break; } case 2: { - *red=ClampToQuantum((MagickRealType) QuantumRange*p); - *green=ClampToQuantum((MagickRealType) QuantumRange*brightness); - *blue=ClampToQuantum((MagickRealType) QuantumRange*t); + *red=KlampToQuantum((MagickRealType) QuantumRange*p); + *green=KlampToQuantum((MagickRealType) QuantumRange*brightness); + *blue=KlampToQuantum((MagickRealType) QuantumRange*t); break; } case 3: { - *red=ClampToQuantum((MagickRealType) QuantumRange*p); - *green=ClampToQuantum((MagickRealType) QuantumRange*q); - *blue=ClampToQuantum((MagickRealType) QuantumRange*brightness); + *red=KlampToQuantum((MagickRealType) QuantumRange*p); + *green=KlampToQuantum((MagickRealType) QuantumRange*q); + *blue=KlampToQuantum((MagickRealType) QuantumRange*brightness); break; } case 4: { - *red=ClampToQuantum((MagickRealType) QuantumRange*t); - *green=ClampToQuantum((MagickRealType) QuantumRange*p); - *blue=ClampToQuantum((MagickRealType) QuantumRange*brightness); + *red=KlampToQuantum((MagickRealType) QuantumRange*t); + *green=KlampToQuantum((MagickRealType) QuantumRange*p); + *blue=KlampToQuantum((MagickRealType) QuantumRange*brightness); break; } case 5: { - *red=ClampToQuantum((MagickRealType) QuantumRange*brightness); - *green=ClampToQuantum((MagickRealType) QuantumRange*p); - *blue=ClampToQuantum((MagickRealType) QuantumRange*q); + *red=KlampToQuantum((MagickRealType) QuantumRange*brightness); + *green=KlampToQuantum((MagickRealType) QuantumRange*p); + *blue=KlampToQuantum((MagickRealType) QuantumRange*q); break; } } @@ -220,7 +220,7 @@ MagickExport void ConvertHSLToRGB(const double hue,const double saturation, assert(blue != (Quantum *) NULL); if (saturation == 0) { - *red=ClampToQuantum((MagickRealType) QuantumRange*lightness); + *red=KlampToQuantum((MagickRealType) QuantumRange*lightness); *green=(*red); *blue=(*red); return; @@ -233,9 +233,9 @@ MagickExport void ConvertHSLToRGB(const double hue,const double saturation, r=ConvertHueToRGB(m1,m2,hue+1.0/3.0); g=ConvertHueToRGB(m1,m2,hue); b=ConvertHueToRGB(m1,m2,hue-1.0/3.0); - *red=ClampToQuantum((MagickRealType) QuantumRange*r); - *green=ClampToQuantum((MagickRealType) QuantumRange*g); - *blue=ClampToQuantum((MagickRealType) QuantumRange*b); + *red=KlampToQuantum((MagickRealType) QuantumRange*r); + *green=KlampToQuantum((MagickRealType) QuantumRange*g); + *blue=KlampToQuantum((MagickRealType) QuantumRange*b); } /* @@ -288,9 +288,9 @@ MagickExport void ConvertHWBToRGB(const double hue,const double whiteness, v=1.0-blackness; if (hue == 0.0) { - *red=ClampToQuantum((MagickRealType) QuantumRange*v); - *green=ClampToQuantum((MagickRealType) QuantumRange*v); - *blue=ClampToQuantum((MagickRealType) QuantumRange*v); + *red=KlampToQuantum((MagickRealType) QuantumRange*v); + *green=KlampToQuantum((MagickRealType) QuantumRange*v); + *blue=KlampToQuantum((MagickRealType) QuantumRange*v); return; } i=(long) floor(6.0*hue); @@ -309,9 +309,9 @@ MagickExport void ConvertHWBToRGB(const double hue,const double whiteness, case 4: r=n; g=whiteness; b=v; break; case 5: r=v; g=whiteness; b=n; break; } - *red=ClampToQuantum((MagickRealType) QuantumRange*r); - *green=ClampToQuantum((MagickRealType) QuantumRange*g); - *blue=ClampToQuantum((MagickRealType) QuantumRange*b); + *red=KlampToQuantum((MagickRealType) QuantumRange*r); + *green=KlampToQuantum((MagickRealType) QuantumRange*g); + *blue=KlampToQuantum((MagickRealType) QuantumRange*b); } /* diff --git a/magick/quantum-private.h b/magick/quantum-private.h index 68c9b0f69..9174c3f69 100644 --- a/magick/quantum-private.h +++ b/magick/quantum-private.h @@ -90,7 +90,7 @@ static inline MagickSizeType GetQuantumRange(const unsigned long depth) static inline float HalfToSinglePrecision(const unsigned short half) { -#define ExponentBias (127-15) +#define ExponentBias (127-15) #define ExponentMask 0x7c00 #define ExponentShift 23 #define SignBitShift 31 @@ -188,6 +188,19 @@ static inline void InitializeQuantumState(const QuantumInfo *quantum_info, quantum_state->mask=mask; } +static inline Quantum KlampToQuantum(const MagickRealType value) +{ + if (value <= 0.0) + return((Quantum) 0); + if (value >= (MagickRealType) QuantumRange) + return((Quantum) QuantumRange); +#if defined(MAGICKCORE_HDRI_SUPPORT) + return((Quantum) value); +#else + return((Quantum) (value+0.5)); +#endif +} + static inline unsigned char *PopCharPixel(const unsigned char pixel, unsigned char *pixels) {