#!/usr/local/bin/perl require 'cgi-lib.pl'; &ReadParse(*in); print &PrintHeader; $used=$in{'used'}; $bval=$in{'Button'}; if ($used != 1 || ($bval eq "Clear")) { $red=0; $green=0; $blue=0; } else { $red=$in{'redval'}+$in{'redincr'}; $green=$in{'greenval'}+$in{'greenincr'}; $blue=$in{'blueval'}+$in{'blueincr'}; } $red=&scale($red); $green=&scale($green); $blue=&scale($blue); $negr = 255-$red; $negg = 255-$green; $negb = 255-$blue; $bg=&rgb2hex($red,$green,$blue); $fg=&rgb2hex($negr,$negg,$negb); $Red=$red; $Green=$green; $Blue=$blue; print < COLOR SELECTOR

Femi's Color Selector and RGB To Hex Converter

Red.......
Less -32 -16 -8 -4 -2 -1 +1 +2 +4 +8 +16 +32 More
Green..
Less -32 -16 -8 -4 -2 -1 +1 +2 +4 +8 +16 +32 More
Blue......
Less -32 -16 -8 -4 -2 -1 +1 +2 +4 +8 +16 +32 More


The background color value is

$bg

The foreground color value (text) which is the complement is

$fg

EOF sub scale { local($colorval)=@_; if ($colorval < 0) { return 0; } elsif ($colorval > 255) { return 255; } else { return $colorval; } } sub rgb2hex { local($red,$green,$blue)=@_; $r0=&dec2hex($red%16); $r1=&dec2hex(int($red/16)); $g0=&dec2hex($green%16); $g1=&dec2hex(int($green/16)); $b0=&dec2hex($blue%16); $b1=&dec2hex(int($blue/16)); $res=$r1.$r0.$g1.$g0.$b1.$b0; return($res); } sub dec2hex { local($dec)=@_; if ($dec < 10) { return($dec); } elsif ($dec > 9) { if ($dec==10) { return('A');} elsif ($dec==11) { return('B');} elsif ($dec==12) { return('C');} elsif ($dec==13) { return('D');} elsif ($dec==14) { return('E');} elsif ($dec==15) { return('F');} } }