Duplicar posible:
given a background color, how to get a foreground color that make it readable on that background color?determinar automáticamente fontcolor óptima por backgroundColor
Me pregunto, si hay algún algoritmo para determinar la fontcolor óptima para facilitar la lectura por su color de fondo.
Por ejemplo: Creo un icono con texto y color dinámicos. Si el color es un poco oscuro, quiero que establezca el color de fuente en blanco y si es bastante brillante, quiero que esté en negro (o incluso grisáceo).
public DynamicIcon(String iconText, Color backgroundColor)
{
this.iconText = iconText;
this.backgroundColor = backgroundColor;
this.fontColor = determineFontColor(backgroundColor);
}
//This is what I need (Pseudocode):
private fontColor determineFontColor(Color backgroundColor)
{
if(backgroundColor == bright)
return Color.BLACK;
if(backgroundColor == dark)
return Color.WHITE;
//If possible:
if(backgroundColor == somethingInBetween)
return Color.GRAYISH;
}
Desafortunadamente no encontré cualquier algoritmo de esa manera, Aun estoy un poco seguro, que ya existe. Alguien tiene alguna idea?
gracias, ymene
gracias por compartir su idea. Lo intentaré. Podría ser lo suficientemente bueno para mí también. – crusam
rgb (191,87,218) es un OSX morado bastante oscuro utiliza para el color de fondo de selección de lista (usan blanco para el color de primer plano de texto). 191 + 87 + 218 = 496, por lo que este algoritmo determinaría que es "claro" . La otra solución que tenía, que era convertir a HSB y luego usar el valor B como punto de corte, falló en el mismo ejemplo. – Trejkaz