[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    www/areas/accessibility
From:       Olaf Schmidt <ojschmidt () kde ! org>
Date:       2006-07-24 16:51:36
Message-ID: 1153759896.906133.21805.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 565858 by ojschmidt:

complete saturation formula

 M  +24 -17    oxygen.php  


--- trunk/www/areas/accessibility/oxygen.php #565857:565858
@@ -82,31 +82,38 @@
     $color ["hex"] = sprintf ("#%'02X%'02X%'02X", $color ["red256"], $color \
["green256"], $color ["blue256"]);  
     $color ["luminosity"] = 0.2126 * $color ["redL"] + 0.7152 * $color ["greenL"] + \
                0.0722 * $color ["blueL"];
-
     $color ["brightness"] = (299 * $color ["red256"] + 587 * $color ["green256"] + \
114 * $color ["blue256"]) / 1000;  
     $max = max ($color ["redL"], $color ["greenL"], $color ["blueL"]);
     $min = min ($color ["redL"], $color ["greenL"], $color ["blueL"]);
     $med = $color ["redL"] + $color ["greenL"] + $color ["blueL"] - $max - $min;
 
-    $color ["hue"] = ($med - $min) / ($max - $min);
-    $color ["saturation"] = 0;
+    $hue = ($med - $min) / ($max - $min);
 
-//     if ($max == $min) {
-//        $color ["hue"] = "-";
-//        $color ["saturation"] = 0;
-//     }
-//     elseif ($max == $color ["greenL"]) {
-//        $color ["hue"] = ($color ["blueL"] - $color ["redL"]) / ($max - $min) / 6 \
                + 1/3;
-//        if ($min == $color ["blueL"])
-//          $color ["saturation"] = 
-//     } elseif ($max == $color ["blueL"]) {
-//        $color ["hue"] = ($color ["redL"] - $color ["greenL"]) / ($max - $min) / 6 \
                + 2/3;
-//     } elseif ($color ["greenL"] < $color ["blueL"]) {
-//        $color ["hue"] = ($color ["greenL"] - $color ["blueL"]) / ($max - $min) / \
                6 + 1;
-//     } else
-//        $color ["hue"] = ($color ["greenL"] - $color ["blueL"]) / ($max - $min) / \
6; +    if ($max == $min) {
+       $color ["hue"] = "-";
+       $color ["saturation"] = 0;
+    }
+    else {
+      if ($max == $color ["redL"]) {
+        $factor = 0.2126;
+      } elseif ($max == $color ["greenL"]) {
+        $color ["hue"] += $hue + 1/3;
+        $factor = 0.7152;
+      } else {
+        $color ["hue"] += 2/3;
+        $factor = 0.0722;
+      }
 
+      if ($med == $color ["redL"]) {
+        $factor += 0.2126 * $hue;
+      } elseif ($med == $color ["greenL"]) {
+        $factor += 0.7152 * $hue;
+      } else {
+        $factor += 0.0722 * $hue;
+      }
+
+    $color ["saturation"] = max (($max-$min)*$factor/$color ["luminosity"], \
($max-$min)*($factor-1)/($color ["luminosity"]-1));  }
 
 function printTableLine (const $colors, const $color, const $name, const $tablename) \
{


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic