PHP HSV to RGB formula comprehension(PHP HSV转RGB公式理解)
                            本文介绍了PHP HSV转RGB公式理解的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
                        
                        问题描述
我可以使用以下代码将 RGB 值转换为 HSV...
I can convert RGB values to HSV with the following code...
 $r = $r/255;
 $g = $g/255;
 $b = $b/255;
 $h = 0;
 $s = 0;
 $v = 0;
 $min = min(min($r, $g),$b);
 $max = max(max($r, $g),$b);
 $r = $max-$min;
 $v = $max;
 if($r == 0){
  $h = 0;
  $s = 0;
 }
 else {
  $s = $r / $max;
  $hr = ((($max - $r) / 6) + ($r / 2)) / $r;
  $hg = ((($max - $g) / 6) + ($r / 2)) / $r;
  $hb = ((($max - $b) / 6) + ($r / 2)) / $r;
  if ($r == $max) $h = $hb - $hg;
  else if($g == $max) $h = (1/3) + $hr - $hb;
  else if ($b == $max) $h = (2/3) + $hg - $hr;
  if ($h < 0)$h += 1;
  if ($h > 1)$h -= 1;
 }
但是你如何在 PHP???
以下是维基百科,但我不明白,
The following is on wikipedia but I don't understand it,
我猜这很明显
推荐答案
这是针对 [0,1] 范围内的 HSV 值(并给出  范围内的 RGB 值[0,1],而不是 {0, 1, ..., 255}:
This is for the the HSV values in the range [0,1] (and giving RGB values in the range [0,1], instead of {0, 1, ..., 255}:
function HSVtoRGB(array $hsv) {
    list($H,$S,$V) = $hsv;
    //1
    $H *= 6;
    //2
    $I = floor($H);
    $F = $H - $I;
    //3
    $M = $V * (1 - $S);
    $N = $V * (1 - $S * $F);
    $K = $V * (1 - $S * (1 - $F));
    //4
    switch ($I) {
        case 0:
            list($R,$G,$B) = array($V,$K,$M);
            break;
        case 1:
            list($R,$G,$B) = array($N,$V,$M);
            break;
        case 2:
            list($R,$G,$B) = array($M,$V,$K);
            break;
        case 3:
            list($R,$G,$B) = array($M,$N,$V);
            break;
        case 4:
            list($R,$G,$B) = array($K,$M,$V);
            break;
        case 5:
        case 6: //for when $H=1 is given
            list($R,$G,$B) = array($V,$M,$N);
            break;
    }
    return array($R, $G, $B);
}
                        这篇关于PHP HSV转RGB公式理解的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
				 沃梦达教程
				
			本文标题为:PHP HSV转RGB公式理解
				
        
 
            
        基础教程推荐
             猜你喜欢
        
	     - 使用 scandir() 在目录中查找文件夹 (PHP) 2022-01-01
 - 主题化 Drupal 7 的 Ubercart “/cart"页 2021-01-01
 - PHPUnit 的 Selenium 2 文档到底在哪里? 2022-01-01
 - Web 服务器如何处理请求? 2021-01-01
 - 将变量从树枝传递给 js 2022-01-01
 - php中的foreach复选框POST 2021-01-01
 - php 7.4 在写入变量中的 Twig 问题 2022-01-01
 - php中的PDF导出 2022-01-01
 - 如何在数学上评估像“2-1"这样的字符串?产生“1"? 2022-01-01
 - Yii2 - 在运行时设置邮件传输参数 2022-01-01
 
    	
    	
    	
    	
    	
    	
    	
    	
				
				
				
				