J'ai regardé le code de la fonction GR32.RGBtoHSL, et le calcul de la luminosité est le suivant :
( Min(R,G,B) + Max(R,G,B) ) / 2
avec RGB € [0,1] et donc la luminosité aussi entre 0 et 1
Type: Messages; Utilisateur: guillemouze
J'ai regardé le code de la fonction GR32.RGBtoHSL, et le calcul de la luminosité est le suivant :
( Min(R,G,B) + Max(R,G,B) ) / 2
avec RGB € [0,1] et donc la luminosité aussi entre 0 et 1
Pas vraiment, c'est l'ensemble des composantes qui définit si la couleur est claire. Par exemple, clAqua ($ffff00) est une couleur claire, et pourtant sa composante rouge est 0 !
Sinon, tu peux toujours passer ta couleur en TLS, et vérifier que la luminosité est insuffisante, auquel cas tu l'augmente et la reconvertit en RGB.
Je crois que GR32 gère les conversions RVB <-> TLS
tu re-tire tant que ta couleur est interdite :
repeat
MaCouleur := clBlack+Random(clWhite);
until not IsCouleurInterdite(MaCouleur);
avec une fonction du style :
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.