HSVをRGBに変換する方法
PHPを使って、カラーコードのHSVをRGBに変換します。
サンプルコード
H(0〜360)、S(0〜1)、V(0〜1)を指定して、0〜255のRGB値を取得します。ここでは円柱モデルを採用しています。
PHP
<?php
function hsv2rgb ( $hsv ) {
$h = $hsv[0] / 60 ;
$s = $hsv[1] ;
$v = $hsv[2] ;
if ( $s == 0 ) return [ $v * 255, $v * 255, $v * 255 ] ;
$i = (int) $h ;
$f = $h - $i ;
$v1 = $v * (1 - $s) ;
$v2 = $v * (1 - $s * $f) ;
$v3 = $v * (1 - $s * (1 - $f)) ;
switch( $i ) {
case 0 :
case 6 :
$rgb = [ $v, $v3, $v1 ] ;
break ;
case 1 :
$rgb = [ $v2, $v, $v1 ] ;
break ;
case 2 :
$rgb = [ $v1, $v, $v3 ] ;
break ;
case 3 :
$rgb = [ $v1, $v2, $v ] ;
break ;
case 4 :
$rgb = [ $v3, $v1, $v ] ;
break ;
case 5 :
$rgb = [ $v, $v1, $v2 ] ;
break ;
}
return array_map( function ( $value ) {
return $value * 255 ;
}, $rgb ) ;
}
hsv2rgb( [ 20.104, 0.749, 1 ] ) ; // [ 255,128.001058,64.005 ]
デモ
好きなCMY値を指定して、CMYK値を確認してみて下さい。
<?php
/*** このコードは編集できます。 ***/
function hsv2rgb ( $hsv ) {
$h = $hsv[0] / 60 ;
$s = $hsv[1] ;
$v = $hsv[2] ;
if ( $s == 0 ) return [ $v * 255, $v * 255, $v * 255 ] ;
$i = (int) $h ;
$f = $h - $i ;
$v1 = $v * (1 - $s) ;
$v2 = $v * (1 - $s * $f) ;
$v3 = $v * (1 - $s * (1 - $f)) ;
switch( $i ) {
case 0 :
case 6 :
$rgb = [ $v, $v3, $v1 ] ;
break ;
case 1 :
$rgb = [ $v2, $v, $v1 ] ;
break ;
case 2 :
$rgb = [ $v1, $v, $v3 ] ;
break ;
case 3 :
$rgb = [ $v1, $v2, $v ] ;
break ;
case 4 :
$rgb = [ $v3, $v1, $v ] ;
break ;
case 5 :
$rgb = [ $v, $v1, $v2 ] ;
break ;
}
return array_map( function ( $value ) {
return $value * 255 ;
}, $rgb ) ;
}
var_dump( hsv2rgb( [ 20.104, 0.749, 1 ] ) ) ;
関連記事
- RGBをHEXに変換する方法
- カラーコードをRGBからHEXに変換します。
- 別ページにリダイレクトさせる方法
- ユーザーを別ページにリダイレクトさせるには、header()を利用します。
- RGBをHSVに変換する方法
- カラーコードをRGBからHSVに変換します。
- RGBをHSLに変換する方法
- カラーコードをRGBからHSLに変換します。
- HSLをRGBに変換する方法
- カラーコードをHSLからRGBに変換します。
- CMYKをCMYに変換する方法
- カラーコードをCMYKからCMYに変換します。