como obtener un color de fuente que contraste sobre otro de fondo
Publicado por David (2 intervenciones) el 30/03/2016 09:53:44
Hola,
Tengo un programa en vb.net vs2010 con el cual dibujo muchos rectángulos con la GDI+ dentro de un picture cada uno de esos rectángulos tiene un color de fondo que varía según el valor que va escrito dentro de cada rectángulo. Lo que quiero es una función que a sabiendas de esos colores de fondo me diga si el color de la fuente debe ser negra o blanca para que sea legible, es decir, cual de esos dos colores es el que mejor contraste tiene para ese color de fondo.
La función que estoy utilizando ahora es la siguiente:
Le paso el color de fondo y me devuelve el color del Brush, pero no me convence para nada, muchas veces en colores claros como "Cyan" o "GreenYellow" me devuelve blanco, me parece que no es un buen método para saberlo. Por eso me gustaría preguntar si conocéis un método mejor o se os ocurre alguno que pueda funcionar.
Muchísimas gracias por la ayuda
Tengo un programa en vb.net vs2010 con el cual dibujo muchos rectángulos con la GDI+ dentro de un picture cada uno de esos rectángulos tiene un color de fondo que varía según el valor que va escrito dentro de cada rectángulo. Lo que quiero es una función que a sabiendas de esos colores de fondo me diga si el color de la fuente debe ser negra o blanca para que sea legible, es decir, cual de esos dos colores es el que mejor contraste tiene para ese color de fondo.
La función que estoy utilizando ahora es la siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Protected Friend Function obtenerColorLetra(ByVal meColor As Color) As Brush
Dim Total As Integer
Try
Total = Int(meColor.R) + Int(meColor.G) + Int(meColor.B)
If Total < 400 Then
Return Brushes.White
Else
Return Brushes.Black
End If
Catch ex As Exception
Throw New Exception("Colores: Obtener Color Letra - " & ex.Message, ex)
End Try
End Function
Le paso el color de fondo y me devuelve el color del Brush, pero no me convence para nada, muchas veces en colores claros como "Cyan" o "GreenYellow" me devuelve blanco, me parece que no es un buen método para saberlo. Por eso me gustaría preguntar si conocéis un método mejor o se os ocurre alguno que pueda funcionar.
Muchísimas gracias por la ayuda
Valora esta pregunta
0