Opposé d'une couleur

cs_lapinblanc Messages postés 30 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 28 décembre 2006 - 25 oct. 2005 à 18:45
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 28 oct. 2005 à 03:21
Est-ce que quelqu'un pourrait me dire comment trouver l'opposé d'une couleur...

Je m'explique, j'ai une couleur de fond sur laquelle je veux que le texte soit toujours visible (si fond noir, écriture blanche, etc...) enfin un truc dans ce genre !

Je vous remercie pour votre aide !

6 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
25 oct. 2005 à 19:16
Il te faut pour cela utiliser un bitblt avec un masque xor : trace ton
texte dans un DC puis pose le sur ton DC de fond avec le flag SRCINVERT
(il me semble).

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
0
cs_lapinblanc Messages postés 30 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 28 décembre 2006
25 oct. 2005 à 19:41
Merci pour ton attention Darksidious, mais il n'y a vraiment pas plus simple pour faire cela ?

Je suis en train de créer une fonction... Je vous tiendrais informé d'ici très peu...

Merci beaucoup !
0
cs_lapinblanc Messages postés 30 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 28 décembre 2006
25 oct. 2005 à 19:46
voici la fonction sur laquel je travail :

Private Function GetGammaColor(ByVal vColor As Long) As Long


Dim Blue As Long
Dim Green As Long
Dim Red As Long

Blue = (vColor \ 65536) And &HFF
Green = (vColor \ 256) And &HFF
Red = vColor And &HFF

Select Case True
Case Red > Green And Red > Blue
Red = 0
Green = 0
Blue = 0
Case Green > Red And Green > Blue
Red = 255
Green = 255
Blue = 255
Case Blue > Green And Blue > Red
Red = 0
Green = 0
Blue = 0
Case Else
Red = Red Xor 255
Green = Green Xor 255
Blue = Blue Xor 255
End Select


GetGammaColor = RGB(Red, Green, Blue)

End Function

C'est un début !
0
cs_lapinblanc Messages postés 30 Date d'inscription mardi 28 janvier 2003 Statut Membre Dernière intervention 28 décembre 2006
25 oct. 2005 à 19:59
Voila ma solution... Si cela peut aider quelqu'un !

En tout cas, merci pour votre attention !

Private Function GetContrastColor(ByVal vColor As Long) As Long


Dim Blue As Long
Dim Green As Long
Dim Red As Long

Blue = (vColor \ 65536) And &HFF
Green = (vColor \ 256) And &HFF
Red = vColor And &HFF

If (0.3 * Red) + (0.59 * Green) + (0.11 * Blue) < 128 Then
vColor = vbWhite
Else
vColor = vbBlack
End If

GetContrastColor = vColor

End Function
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
25 oct. 2005 à 20:04
Oui enfin bon, là ce n'est pas vraiment des couleurs inversées, mais
c'est vrai que c'est plus simple ue BitBlt (bien que ma méthode avec
BitBlt était très simple aussi : deux picturebox, l'une pour l'image de
fond, l'autre pour ce qu'on veut afficher en couleur inverse, et hop,
le tour est joué).

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
28 oct. 2005 à 03:21
salut,
désolé de prendre la discution en cours, j'avais repéré ton message, essayé, mais rien réussi de satisfaisant.
et là, besoin pour moi, je cherche depuis 1h30 alors si çà peut servir....

Inverse = TaCouleurLong Xor &HFFFFFF
çà donne le négatif (donc l'opposé, pas juste N&B)

ps : Dark -> oui, c'est bien SRCINVERT = &H660046
et pour mon cas précis (si çà t'intéresse et que tu te souviens), je me suis remis "aux tableaux", donc pas possible Blit avec une couleur à éviter (transparence)....

++
PCPT [AFCK]
0
Rejoignez-nous