I am trying to use this to figure out if a color is light or dark
Evaluate whether a HEX value is dark or light
Now. It takes in a 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; }
I have a hex color though.
I tried to do this
var color = System.Drawing.ColorTranslator.FromHtml("#FFFFFF"); int rgb = color.R + color.G + color.B; var a = calcLuminance(rgb);
I got 0.11725 I thought it would have to be in the range of 0-256 or something like that.
What am I doing wrong? Do I have to covert R
to an int
? Or am I just way off?
A HEX color is expressed as a six-digit combination of numbers and letters defined by its mix of red, green and blue (RGB). Basically, a HEX color code is shorthand for its RGB values with a little conversion gymnastics in between.
#ffffff color RGB value is (255,255,255). This hex color code is also a web safe color which is equal to #FFF. #ffffff color name is White color. #ffffff hex color red value is 255, green value is 255 and the blue value of its RGB is 255.
Just convert the hex string to an integer:
int color = Convert.ToInt32("FFFFFF", 16);
You can use:
public string GenerateRgba(string backgroundColor, decimal backgroundOpacity) { Color color = ColorTranslator.FromHtml(hexBackgroundColor); int r = Convert.ToInt16(color.R); int g = Convert.ToInt16(color.G); int b = Convert.ToInt16(color.B); return string.Format("rgba({0}, {1}, {2}, {3});", r, g, b, backgroundOpacity); }
Link To original Post by jeremy clifton on git
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With