Soyez le premier à donner votre avis sur cette source.
Snippet vu 7 515 fois - Téléchargée 19 fois
<?php private function Hue_2_RGB( $v1, $v2, $vH ){ if ( $vH < 0 ) $vH += 1; if ( $vH > 1 ) $vH -= 1; if ( ( 6 * $vH ) < 1 ) return ( $v1 + ( $v2 - $v1 ) * 6 * $vH ); if ( ( 2 * $vH ) < 1 ) return ( $v2 ); if ( ( 3 * $vH ) < 2 ) return ( $v1 + ( $v2 - $v1 ) * ( ( 2 / 3 ) - $vH ) * 6 ); return ( $v1 ); } function tsl2rgb($T,$S,$L){ //HSL from 0 to 1 if ( $S == 0 ){ //RGB results from 0 to 255 $R = $L * 255; $G = $L * 255; $B = $L * 255; }else{ if ( $L < 0.5 ){ $var_2 = $L * ( 1 + $S ); }else{ $var_2 = ( $L + $S ) - ( $S * $L ); } $var_1 = 2 * $L - $var_2; $R = 255 * $this->Hue_2_RGB( $var_1, $var_2, $T + ( 1 / 3 ) ); $G = 255 * $this->Hue_2_RGB( $var_1, $var_2, $T ); $B = 255 * $this->Hue_2_RGB( $var_1, $var_2, $T - ( 1 / 3 ) ); } return array("R"=>$R,"G"=>$G,"B"=>$B); } function rgb2tsl($R,$G,$B){ //RGB from 0 to 255 $var_R = ( $R / 255 ); $var_G = ( $G / 255 ); $var_B = ( $B / 255 ); $var_Min = min( $var_R, $var_G, $var_B ); //Min. value of RGB $var_Max = max( $var_R, $var_G, $var_B ); //Max. value of RGB $del_Max = $var_Max - $var_Min; //Delta RGB value $L = ( $var_Max + $var_Min ) / 2; //This is a gray, no chroma... if ( $del_Max == 0 ){ //HSL results from 0 to 1 $T = 0; $S = 0; } //Chromatic data... else{ if ( $L < 0.5 ){ $S = $del_Max / ( $var_Max + $var_Min ); }else{ $S = $del_Max / ( 2 - $var_Max - $var_Min ); } $del_R = ( ( ( $var_Max - $var_R ) / 6 ) + ( $del_Max / 2 ) ) / $del_Max; $del_G = ( ( ( $var_Max - $var_G ) / 6 ) + ( $del_Max / 2 ) ) / $del_Max; $del_B = ( ( ( $var_Max - $var_B ) / 6 ) + ( $del_Max / 2 ) ) / $del_Max; if( $var_R == $var_Max ) $T = $del_B - $del_G; else if ( $var_G == $var_Max ) $T = (( 1 / 3 ) + $del_R - $del_B); else if ( $var_B == $var_Max ) $T = (( 2 / 3 ) + $del_G - $del_R); if ( $T < 0 ){ $T += 1; } if ( $T > 1 ) { $T -= 1; } } return array("T"=>$T,"S"=>$S,"L"=>$L); } ?>
15 juin 2008 à 16:32
15 juin 2008 à 00:31
Merci pour la source et bonne continuation
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.