Author: akv
Date: 2012-09-03 22:12:47 +0200 (Mon, 03 Sep 2012)
New Revision: 4276

Modified:
   branches/4175-enfuse/src/rs-enfuse.c
Log:
Rewrote pixelcalculation in calculate_lightness().

Modified: branches/4175-enfuse/src/rs-enfuse.c
===================================================================
--- branches/4175-enfuse/src/rs-enfuse.c        2012-09-03 19:16:14 UTC (rev 
4275)
+++ branches/4175-enfuse/src/rs-enfuse.c        2012-09-03 20:12:47 UTC (rev 
4276)
@@ -60,19 +60,27 @@
       guchar *pixels = gdk_pixbuf_get_pixels(pixbuf);
       gint rowstride = gdk_pixbuf_get_rowstride(pixbuf);
       gint height = gdk_pixbuf_get_height(pixbuf);
+      gint width = gdk_pixbuf_get_width(pixbuf);
+      gint channels = gdk_pixbuf_get_n_channels(pixbuf);
 
-      gint i;
+      gint x,y,c;
       gulong sum = 0;
       gint num = 0;
 
-      for (i = 0; i<rowstride*height; i++)
-       {
-         sum += pixels[i];
-         num++;
+      for (y = 0; y < height; y++)
+        {
+         for (x = 0; x < width; x++)
+           {
+             for (c = 0; c < channels; c++)
+               {
+                 sum += pixels[x+c+y*rowstride];
+               }
+           }
        }
 
       g_object_unref(pixbuf);
 
+      num = width*height*channels;
       return (gint) (sum/num);
 }
 


_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit

Reply via email to