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公式理解


猜你喜欢
- openssl_digest vs hash vs hash_hmac?盐与盐的区别HMAC? 2022-01-01
- 覆盖 Magento 社区模块控制器的问题 2022-01-01
- 使用 GD 和 libjpeg 支持编译 PHP 2022-01-01
- PHP foreach() 与数组中的数组? 2022-01-01
- 如何从数据库中获取数据以在 laravel 中查看页面? 2022-01-01
- Laravel 5:Model.php 中的 MassAssignmentException 2021-01-01
- 如何使用 Google API 在团队云端硬盘中创建文件夹? 2022-01-01
- PHP - if 语句中的倒序 2021-01-01
- Oracle 即时客户端 DYLD_LIBRARY_PATH 错误 2022-01-01
- 如何在 Symfony2 中正确使用 webSockets 2021-01-01