RGB2HSV

RGB色空間をHSV色空間に変更するための計算式。今すぐにはいらないけど、あとのためにちょっと書いておこう。擬似的なPerlコードなので、適当に補完して読めばいいと思う。

$R = rand;
$G = rand;
$B = rand;

$MAX = max($R, $G, $B);
$MIN = min($R, $G, $B);

if ($MAX == $R) {
    $H = 60 * ($G - $B) / ($MAX - $MIN);
}
elsif ($MAX == $G) {
    $H = 60 * ($B - $R) / ($MAX - $MIN) + 120;
}
else { # $MAX == $B
    $H = 60 * ($R - $G) / ($MAX - $MIN) + 240;
}
$S = ($MAX - $MIN) / $MAX;
$V = $MAX;

あとWikipediaのこのあたりとか。

ていうか、CPANで探したらこんなのすでにモジュール化されてるんじゃないだろうかとか思ったり思わなかったりやっぱり思ったり。