2008/04/27
php:色相角度
配列のキーに使用し ksort したりすれば色相ソートに使えます。
以下はRGBから色相角度を算出します(PHP)。$saturation が彩度で $value が明度、RGB→HSV変換です。
・・・故・自サイトから転載です。すぐasに書き直せると思います。
<?
function hue($hex_color){
//色相角度を返します 0~360
//ex.
//FF0000(赤) → 0
//00FF00(緑) → 120
//0000FF(青) → 240
$dec_color = hexdec($hex_color);
$r = $dec_color >> 16;
$g = ($dec_color >> 8) & 255;
$b = $dec_color & 255;
$maximum=max($r, $g, $b);
$minimum=min($r, $g, $b);
$value = $maximum;
if($value>0){
$saturation = ($maximum-$minimum)/$maximum;
if($saturation>0){
switch($maximum){
case $r:
$hue = 60*(($g-$b)/($maximum-$minimum));
break;
case $g:
$hue = 60*(2+($b-$r)/($maximum-$minimum));
break;
case $b:
$hue = 60*(4+($r-$g)/($maximum-$minimum));
break;
}
if($hue<0){
$hue += 360;
}
}else{
$hue=0;
}
}else{
$saturation=0;
$hue=0;
}
return( $hue );
}
?>