poppler/CairoOutputDev.cc |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

New commits:
commit 934a5ae45eb17bd0e2010be89f55510e8a69816b
Author: Jeff Muizelaar <[EMAIL PROTECTED]>
Date:   Sat Nov 3 13:08:51 2007 -0400

    Avoiding using floating point when converting to luminance.
    
    The code now also does proper rounding instead of just truncating.

diff --git a/poppler/CairoOutputDev.cc b/poppler/CairoOutputDev.cc
index 2d4f663..fd2742a 100644
--- a/poppler/CairoOutputDev.cc
+++ b/poppler/CairoOutputDev.cc
@@ -601,7 +601,8 @@ static uint32_t luminocity(uint32_t x)
   int r = (x >> 16) & 0xff;
   int g = (x >>  8) & 0xff;
   int b = (x >>  0) & 0xff;
-  int y = (int) (0.3 * r + 0.59 * g + 0.11 * b);
+  // an arbitrary integer approximation of .3*r + .59*g + .11*b
+  int y = (r*19661+g*38666+b*7209 + 32829)>>16;
   return y << 24;
 }
 
_______________________________________________
poppler mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/poppler

Reply via email to