begin process at 2012 05 28 13:08:31
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > CONVERSION RGB <-> TSL

CONVERSION RGB <-> TSL


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Classé sous :RGB, TSL, RVB, HSL, conversion Niveau :Débutant Date de création :13/06/2008 Date de mise à jour :13/06/2008 23:04:58 Vu :5 319

Auteur : Mrreivax

Ecrire un message privé
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

J'ai cherché sur tous les sites comment passer du mode RGB à TSL et ci-ce-versa sans résultat.
Puis finalement, je suis tombé sur http://www.easyrgb.com/index.php?X=MATH&H=19#text1 9
Les scripts ne sont pas en PHP, alors je les ai traduits!

Source

  • <?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);
  • }
  • ?>
<?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);
    }
?>

 Conclusion

Merci à EasyRGB!!!


 Historique

13 juin 2008 23:04:58 :
Mise en page

 Sources du même auteur

Source avec Zip LIRE LES CONFIGURATIONS D'UN FICHIER XML
Source avec Zip Source avec une capture TABLEUR GENRE EXCEL EN PHP POUR LE CSV
RECHERCHE SUR GOOGLE
ENVOYER DES FICHIERS SUR LE SERVEUR
PROTÉGER UNE PAGE AVEC UN CODE+PSEUDO AVEC UNE FORM WINDOWS

 Sources de la même categorie

Source avec Zip Source avec une capture CAMEMBERT BD par dardelphi
Source avec une capture AMÉLIORATION : CAMEMBERT par asphator
GESTION DE COULEUR par manuche
Source avec Zip NAVIGATOR (+CSSDETECTOR) par xXVoxPopuliXx
COMMENT, AVEC GD, DESSINER UN RECTANGLE TRANSPARENT PLEIN AV... par Rainbow

 Sources en rapport avec celle ci

GESTION DE COULEUR par manuche
Source avec Zip Source avec une capture [POO] OBJET CONVERTISSANT UN NOMBRE DE SECONDES EN DIFFÉRENT... par Dariumis
FORMATER DES MILLISECONDES AU FORMAT HH:MM:SS:MMM par lcef
Source avec Zip Source avec une capture POO - GESTION DES COULEURS par DiGhan
LIB - MANIPULATION DES COULEURS (RGB-HEXA) par DiGhan

Commentaires et avis

Commentaire de aKheNathOn le 15/06/2008 00:31:29 10/10

source très utile pour les traitements d'images. Ligne 2 le private n'est pas utile, et pour suivre la logique de nommage de fonctions tu devrais l'appeller hue2rgb.

Merci pour la source et bonne continuation

Commentaire de Mrreivax le 15/06/2008 16:32:40

a la base, cette source vient d'une de mes classe. C'est la raison pour laquelle il y a "PRIVATE". "hue2rgb" n'est pas forcément utile, puisque cette fonction n'est appelé que par une fonction public. Donc, l'utilisateur n'y a pas accés directement. Mais c'est vrai que ca aurait été plus malin de l'appelé hue2rgb quand meme ^^

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Conversion BMP vers JPG [ par Manson ] Bonjour a tous,voilà j'aimerai savoir comment l'on peut faire pour convertir un BMP vers un JPG, car je ne trouve aucune fonction le permettant, alors HELP! conversion de variables [ par eax ] comment fait-on pour convertir une variable, par exemple:$toto=12,12,35,25250,251,1,0,2pour l'enregistrer dans un seul champ d'une base de données mys conversion de date [ par Joez ] voila je récupère la date de mysql sous la forme 2002-01-02 10:43:32 et je voudrais afficher cette date sous la forme Lundi 02 janvier 2002 à 10h4 probleme conversion HTML -> Texte -> HTML [ par Cho7Kipu ] Coucou tt le monde !Bon alors j'explik mon probleme :J'ai fait un site de partition. Pour que mon moteur puisse rechercher des mots contenu dans une d conversion d'un script js à php [ par pyranhaz ] Salut,comment convertir ce script javascript en php ???&lt;script language="Javascript"&gt;&lt;!--ID=window.setTimeout("window.location='htt Conversion de caractères issus de dbase.comment faire? [ par asterixobelix ] &lt;?php$base="eleves.dbf";$dbh =dbase_open($base,0);$nb_eleves=dbase_numrecords($dbh);print("$nb_eleves &lt;BR&gt;");$nb_champs=dbase_numfields($dbh) conversion code c++ vers PHP [ par karolina64 ] Bonjour,j'ai le code suivant écrit en C++ que je veux traduire en PHP :Maxord = 12;*snorm = 1.0;for (n=1; n&lt;=maxord; n++) {*(snorm+n) = *(snorm+n-1 conversion fichier .doc en .html [ par thoru ] Bonjour!Je débute en php et je ne sais pas s'il existe une possibilité de convertir un fichier .doc en fichier.html.Je vous explique je dois prendre d Tags Word - Conversion [ par jdaviaud ] Bonjour a tous,J'essaye desespérément de faire une interface d'import de fichiers texte pour les convertir ensuite en fichier HTML, tout fonctionne im conversion date [ par youyou26 ] je veux juste convertir une date dd/mm/yyyy en yyyy-mm-dd ou tt simplement yyyymmdd.la $Dte m'affiche dd/mm/yyyy dans le calendrier et ce que je veux


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,733 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales