Negatif

Contenu du snippet

Cette fonction permet d'obtenir le négatif d'une couleur, ce qui est parfois utile lorsque le fond d'une boite est d'une certaine couleur et que vous souhaitez quand même lire le texte qui se trouve à l'intérieur.

Source / Exemple :


Public Function Negatif(Couleur As Long, Optional limite As Integer = 50) As Long
Dim Rouge, Vert, Bleu As Integer
Dim StrCouleur As String

StrCouleur = Right("000000" & Hex(Couleur), 6)
Rouge = CInt("&H" & Mid(StrCouleur, 5, 2))
Vert = CInt("&H" & Mid(StrCouleur, 3, 2))
Bleu = CInt("&H" & Mid(StrCouleur, 1, 2))
If (Abs(127 - Rouge) + Abs(127 - Vert) + Abs(127 - Bleu)) > limite Then
    Negatif = RGB(255 - Rouge, 255 - Vert, 255 - Bleu)
    Else
        Negatif = IIf((384 - Rouge - Vert - Bleu) < 0, &HFFFFFF, &H0)
End If
End Function

Conclusion :


Cette fonction est basé sur le principe de la décomposition de l'image vers les 3 couleurs Rouge/Vert/Bleu et de prendre les valeurs complémentaires par rapport à 255. Le seul problème est lorsque la couleur tend vers le gris "parfait", c'est à dire 50% de noir et 50% de blanc, on ne voit plus rien ... dans ce cas, c'est la couleur noir ou blanc qui sera choisie (en prenant en compte l'écart le plus important). C'est pour cela qu'il y a la notion de limite (j'ai testé, un ecart minimum de 50 parait acceptable)

A voir également

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.