求把下面的JAVA代码翻译成PHP代码。 本帖最后由 fujun2013 于 2014-09-16 17:13:39 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 直译即可function rgb2hsb($rgbR, $rgbG, $rgbB) { $rgbR &= 255; $rgbG &= 255; $rgbB &= 255; $rgb = array($rgbR, $rgbG, $rgbB ); sort($rgb); $max = $rgb[2]; $min = $rgb[0]; $hsbB = $max / 255.0; $hsbS = $max == 0 ? 0 : ($max - $min) / $max; $hsbH = 0; if ($max == $rgbR && $rgbG >= $rgbB) { $hsbH = ($rgbG - $rgbB) * 60 / ($max - $min) + 0; } else if ($max == $rgbR && $rgbG < $rgbB) { $hsbH = ($rgbG - $rgbB) * 60 / ($max - $min) + 360; } else if ($max == $rgbG) { $hsbH = ($rgbB - $rgbR) * 60 / ($max - $min) + 120; } else if ($max == $rgbB) { $hsbH = ($rgbR - rgbG) * 60 / ($max - $min) + 240; } return array( $hsbH, $hsbS, $hsbB );} function hsb2rgb($h, $s, $v) {// $h , 0.0f) >= 0 && Float.compare(h, 360.0f) <= 0;// assert Float.compare(s, 0.0f) >= 0 && Float.compare(s, 1.0f) <= 0;// assert Float.compare(v, 0.0f) >= 0 && Float.compare(v, 1.0f) <= 0; $r = $g = $b = 0; $i = ($h / 60) % 6; $f = ($h / 60) - $i; $p = $v * (1 - $s); $q = $v * (1 - $f * $s); $t = $v * (1 - (1 - $f) * $s); switch ($i) { case 0: $r = $v; $g = $t; $b = $p; break; case 1: $r = $q; $g = $v; $b = $p; break; case 2: $r = $p; $g = $v; $b = $t; break; case 3: $r = $p; $g = $q; $b = $v; break; case 4: $r = $t; $g = $p; $b = $v; break; case 5: $r = $v; $g = $p; $b = $q; break; default: break; } return array( intval($r * 255), intval($g * 255), intval($b * 255) );} 请问怎样将远程图片伪装成本地图片? 脚本的优化(百万级数据 求指教) realpath('./')的值为c:\winnt\system32,请问这是什么原因? 看到一段代码,不知道怎么理解 mysql int转换成varchar,用什么函数? 30分钟CMS系统代码演示,给你们开开眼界. url的映射及处理问题 招全职php编程人员 跪求解决办法……各位高手请指教! 为什么始终有个记录读不出来? imageTTFBbox算出的坐标为什么会有负数啊? 新手求支招 YII 框架上如何调用控制台执行php文件
$rgbR &= 255;
$rgbG &= 255;
$rgbB &= 255;
$rgb = array($rgbR, $rgbG, $rgbB );
sort($rgb);
$max = $rgb[2];
$min = $rgb[0];
$hsbB = $max / 255.0;
$hsbS = $max == 0 ? 0 : ($max - $min) / $max;
$hsbH = 0;
if ($max == $rgbR && $rgbG >= $rgbB) {
$hsbH = ($rgbG - $rgbB) * 60 / ($max - $min) + 0;
} else if ($max == $rgbR && $rgbG < $rgbB) {
$hsbH = ($rgbG - $rgbB) * 60 / ($max - $min) + 360;
} else if ($max == $rgbG) {
$hsbH = ($rgbB - $rgbR) * 60 / ($max - $min) + 120;
} else if ($max == $rgbB) {
$hsbH = ($rgbR - rgbG) * 60 / ($max - $min) + 240;
}
return array( $hsbH, $hsbS, $hsbB );
}
function hsb2rgb($h, $s, $v) {
// $h , 0.0f) >= 0 && Float.compare(h, 360.0f) <= 0;
// assert Float.compare(s, 0.0f) >= 0 && Float.compare(s, 1.0f) <= 0;
// assert Float.compare(v, 0.0f) >= 0 && Float.compare(v, 1.0f) <= 0;
$r = $g = $b = 0;
$i = ($h / 60) % 6;
$f = ($h / 60) - $i;
$p = $v * (1 - $s);
$q = $v * (1 - $f * $s);
$t = $v * (1 - (1 - $f) * $s);
switch ($i) {
case 0:
$r = $v;
$g = $t;
$b = $p;
break;
case 1:
$r = $q;
$g = $v;
$b = $p;
break;
case 2:
$r = $p;
$g = $v;
$b = $t;
break;
case 3:
$r = $p;
$g = $q;
$b = $v;
break;
case 4:
$r = $t;
$g = $p;
$b = $v;
break;
case 5:
$r = $v;
$g = $p;
$b = $q;
break;
default:
break;
}
return array( intval($r * 255), intval($g * 255), intval($b * 255) );
}