Je partage cette classe que j'ai créée pour m'aider dans des projets nécessitant de travailler avec différents formats de couleur (RVB, hexadecimal, TSL).
Pour l'instant, le ColorManager permet de :
- convertir du RVB en hexadécimal (Number ou String) et vice versa
- convertir du ARVB en hexadécimal (Number ou String) et vice versa
- convertir du RVB en TSL (Teinte, Saturation, Luminosité) et vice versa
(ce qui permet bien sur de convertir aussi de l'hexadécimal en TSL, et vice versa)
- désaturer une couleur
- générer une couleur aléatoire
Il y assez peu de commentaires dans mon code, pour la simple raison que la plupart des fonctions sont des applications de formules mathématiques, il n'y a donc pas de logique particulière, ce ne sont que des calculs.
Vous retrouverez ces formules ainsi que beaucoup d'autres sur cette page qui m'a bien dépanné :
http://www.easyrgb.com/index.php?X=MATH
Source / Exemple :
// Exemple d'utilisation :
// Importer la classe
import com.m.ColorManager;
// Générer une couleur aléatoire
var myRandomColor:Number = ColorManager.getRandomColor();
// Récupérer les valeurs RVB de cette couleur (sous la forme d'un objet)
var myRandomRGB:Object = ColorManager.getRGBFromHex( myRandomColor );
// Afficher chaque valeur
trace( "R: " + myRandomRGB.r + ", G: " + myRandomRGB.g + ", B: " + myRandomRGB.b );
Conclusion :
Si vous trouvez des erreurs dans ce code,
si vous pensez à quelque chose d'utile à rajouter,
si vous faites vous-même des modifications que vous voulez partager,
contactez-moi !
Par exemple, toutes les fonctions sont en "public static" afin d'être utilisées sans créer d'instance du ColorManager, même la fonction "getColorValueFromPQH", qui est une sous-fonction de "getRGBfromHSL" et qui n'est pas destinée à être appelée de l'extérieur...
Y'a t'il un moyen de la rendre privée ? Pour l'instant je bloque là-dessus.