estoy tratando de usar esto para averiguar si un color es claro u oscuroCómo convertir Hex a RGB?
Evaluate whether a HEX value is dark or light
ahora. Se necesita en un int
float calcLuminance(int rgb)
{
int r = (rgb & 0xff0000) >> 16;
int g = (rgb & 0xff00) >> 8;
int b = (rgb & 0xff);
return (r*0.299f + g*0.587f + b*0.114f)/256;
}
Tengo un color hexadecimal sin embargo.
Se ha intentado realizar esta
var color = System.Drawing.ColorTranslator.FromHtml("#FFFFFF");
int rgb = color.R + color.G + color.B;
var a = calcLuminance(rgb);
llegué 0,11725 pensé que tendría que estar en el rango de 0-256 o algo por el estilo.
¿Qué estoy haciendo mal? ¿Debo encubrir R
en un int
? ¿O estoy solo lejos?
@BlueRaja - Danny Pflughoeft - algo así como este System.Drawing.Color someColor = System.Drawing.Color.FromArgb (color.R, color.G, color.B); float ab = someColor.GetBrightness(); ¿Hay alguna forma de hacerlo sin convertirlo primero a rgb? – chobo2
@ chobo2 Simplemente 'float ab = System.Drawing.ColorTranslator.FromHtml (" # FFFFFF "). GetBrightness();' :) –
@Chobo: Bueno, ¿cómo estás * ingresando * el color en la computadora? El ejemplo que usted dio ** es ** RGB: en '" #FFFFFF "', el primer '" FF "' es el R * (en hexadecimal) *, el segundo '" FF "' es el G, y el tercero '" FF "' es el B. Como dice @lasseespeholt en el comentario anterior, puedes obtener el brillo de tu cadena RGB en una línea. –