无需删除。代码确实格式错误,但感谢提供!
这段代码是由与我一起处理相同问题的其他人发送给我的,我已经收到了它,我将给你它的确切形式。我所做的只是在我的代码中实现它,所以请原谅错误的答案。
这是代码(3个功能)
gimmeHSL()
将从 RGB 转换为 HSL
输入:R、G、B <=> {0, 255}, {0, 255}, {0, 255}
输出:H, S, L <=> {0, 360}, {0, 1}, {0, 1}
gimmeRGB()
将从 RGB 转换为 HSL
IN: H, S, L <=> {0, 360}, {0, 1}, {0, 1}
输出:R、G、B <=> {0, 255}, {0, 255}, {0, 255}
magic_kristo()
,我不知道它是做什么的,但它似乎被其他两个使用。
这是一个使用示例
print_r(gimmeRGB(gimmeHSL(200,153,148)));
注意:即使这有帮助也请不要投赞成票,我会感觉很糟糕。只需使用它,如果它有效,也许可以发表评论。
function gimmeHSL($zk0,$ns1=null,$wo2=null){if(is_array($zk0)&&sizeof($zk0)==3)list($tm3,$ns1,$wo2)=$zk0;
else $tm3=$zk0;$ck4=min($tm3,$ns1,$wo2);$pw5=max($tm3,$ns1,$wo2);$qe6=$pw5-$ck4;
$up7=($pw5+$ck4)/510;if(0 ==$qe6){$li8=0;$wu9=0;}else{if(0.5>$up7){$wu9=$qe6/($pw5+$ck4);}else{$wu9=$qe6/(510-$pw5-$ck4);}
if($pw5==$tm3){$li8=($ns1-$wo2)/(6.0*$qe6);}
else if($pw5==$hd10){$li8=1/3+($wo2-$tm3)/(6.0*$qe6);}else{$li8=2/3+($tm3-$ns1)/(6.0*$qe6);}
if(0>$li8)$li8+=1;if(1<$li8)$li8-=1;}$li8=round($li8*360);return array($li8,$wu9,$up7);}
function gimmeRGB($np11,$vs12=null,$pp13=null){if(is_array($np11)&&sizeof($np11)==3)list($zg14,$vs12,$pp13)=$np11;
else $zg14=$np11;if($vs12==0){$tm3=$ns1=$wo2=round($pp13*255);}else{if($pp13<=0.5){$oo15=$pp13*($vs12+1);}
else{$oo15=$pp13+$vs12-$pp13*$vs12;}$qw16=$pp13*2-$oo15;$qk17=$zg14/360;$tm3=magic_kristo($qw16,$oo15,$qk17+1/3);
$ns1=magic_kristo($qw16,$oo15,$qk17);$wo2=magic_kristo($qw16,$oo15,$qk17-1/3);}return array($tm3,$ns1,$wo2);}
function magic_kristo($qw16,$oo15,$qk17){if($qk17<0)$qk17+=1;else if($qk17>1)$qk17-=1;
if(6*$qk17<1)$sx18=$qw16+($oo15-$qw16)*$qk17*6;else if(2*$qk17<1)$sx18=$oo15;else if(3*$qk17<2)$sx18=$qw16+($oo15-$qw16)*(2/3-$qk17)*6;
else $sx18=$qw16;return round(255*$sx18);}