Well, I have Hue and Saturation. I'll work on Lightness later.
Oh, and... when going from HSV - RGB, close is good enough, isn't it?
PHP Code:
/* --*-- Calculate RGB from Hue --*-- */
var $r_val = 0;
var $g_val = 0;
var $b_val = 0;
var $hue_adg = 256/60;
/* -- Primary Ranges -- */
if($hsl.Hue[0] >= 300 || $hsl.Hue[0] <= 60){$r_val = 255;} // Red
if($hsl.Hue[0] >= 60 && $hsl.Hue[0] <= 180){$g_val = 255;} // Green
if($hsl.Hue[0] >= 180 && $hsl.Hue[0] <= 300){$b_val = 255;} // Blue
/* -- Primary - Secondary Ranges -- */
if($hsl.Hue[0] > 0 && $hsl.Hue[0] < 60){$g_val = $hsl.Hue[0] * $hue_adg ;} // Red - Yellow
if($hsl.Hue[0] > 60 && $hsl.Hue[0] < 120){$r_val = 255 - (($hsl.Hue[0] - 60) * $hue_adg);} // Yellow - Green
if($hsl.Hue[0] > 120 && $hsl.Hue[0] < 180){$b_val = ($hsl.Hue[0] - 120) * $hue_adg ;} // Green - Cyan
if($hsl.Hue[0] > 180 && $hsl.Hue[0] < 240){$g_val = 255 - (($hsl.Hue[0] - 180) * $hue_adg);} // Cyan - Blue
if($hsl.Hue[0] > 240 && $hsl.Hue[0] < 300){$r_val = ($hsl.Hue[0] - 240) * $hue_adg ;} // Blue - Magenta
if($hsl.Hue[0] > 300 && $hsl.Hue[0] < 360){$b_val = 255 - (($hsl.Hue[0] - 300) * $hue_adg);} // Magenta - Red
/* --*-- Adjust For Saturation --*-- */
var $sat_adj = 128 * (1 - ($hsl.Sat[0] / 100));
// Adjust Red
if($r_val > 128){$r_val -= $sat_adj;}
if($r_val < 128){$r_val += $sat_adj;}
// Adjust Green
if($g_val > 128){$g_val -= $sat_adj;}
if($g_val < 128){$g_val += $sat_adj;}
// Adjust Blue
if($b_val > 128){$b_val -= $sat_adj;}
if($b_val < 128){$b_val += $sat_adj;}
//Set Sat = Zero
if($hsl.Sat[0]===0){
$r_val = 128;
$g_val = 128;
$b_val = 128;
}
/* --*-- Adjust For Lightness --*-- */
if($hsl.Lit[0] < 50){
} else {
}
// var $light_adj
document.getElementById('R_Test1').firstChild.data = $r_val;
document.getElementById('G_Test1').firstChild.data = $g_val;
document.getElementById('B_Test1').firstChild.data = $b_val;
document.getElementById('R_Test2').firstChild.data = Math.floor($r_val);
document.getElementById('G_Test2').firstChild.data = Math.floor($g_val);
document.getElementById('B_Test2').firstChild.data = Math.floor($b_val);
}
Bookmarks