home > 投稿 > php:色相角度
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 );

}
?>

トラックバックURL

http://faces2.bascule.co.jp/mt/mt-tb.cgi/559

コメントを投稿

(コメントには承認が必要になることがあります。承認されるまではコメントは表示されません。)