--- Rasterbator.cs.orig	2009-06-07 10:49:23.000000000 -0700
+++ Rasterbator.cs	2009-06-07 10:47:47.000000000 -0700
@@ -270,6 +270,7 @@
   
         // calculates average brightness
         float Brightness=0;
+        float Saturation=0;
         float c=0;
         float coc=0;
         float r=0, g=0, b=0;
@@ -282,6 +283,7 @@
           
           Dr.Color P=OptimizeGetPixel ? GetSourcePixel(bx, by) : Source.GetPixel(bx, by);
           Brightness+=P.GetBrightness();
+          Saturation+=P.GetSaturation();
           if(!UseAverageColor) continue;
           
           coc++;
@@ -289,8 +291,15 @@
           g+=P.G;
           b+=P.B;
         }
-  
-        float Radius=(1-Brightness/c)*MaxRadius;
+
+        float Radius=0;
+
+        if (UseAverageColor) {
+            Radius = System.Math.Max(1 - Brightness/c, Saturation/c)
+                * MaxRadius;
+        } else {
+            Radius = (1 - Brightness / c) * MaxRadius;
+        }
   
         float ex=(sx+0.5f)*SquareSize/2f;
         float ey=(sy+0.5f)*SquareSize/2f;
