]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Wed, 14 Apr 2010 13:22:18 +0000 (13:22 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Wed, 14 Apr 2010 13:22:18 +0000 (13:22 +0000)
magick/gem.c
magick/quantum-private.h

index 278360ba0c7027cc1c1e3eb780f4618b3e4254bf..d1f7ee50a47adda2dfb792451361f62fc76c6a8d 100644 (file)
@@ -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);
 }
 \f
 /*
@@ -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);
 }
 \f
 /*
index 68c9b0f6969b9ec11d42b7dbba74f639250372f2..9174c3f690a138ba9d319a581455416395295c59 100644 (file)
@@ -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)
 {