削除する必要はありません。コードの形式は確かに悪いですが、提供していただきありがとうございます。
このコードは、私と同じ問題に取り組んでいる他の人から送られてきました。私がやったのはコードに実装することだけだったので、悪い答えを許してください。
コードは次のとおりです(3つの機能)
gimmeHSL()
RGBからHSLに変換します
中: R, G, B <=> {0, 255}, {0, 255}, {0, 255}
出: 横、横、左 <=> {0, 360}, {0, 1}, {0, 1}
gimmeRGB()
RGBからHSLに変換します
で: H、S、L <=> {0, 360}, {0, 1}, {0, 1}
OUT: R, G, B <=> {0, 255}, {0, 255}, {0, 255}
magic_kristo()
、 何をするものかわかりませんが、他の2人で使用されているようです。
使用例はこちら
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);}