Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Formula to determine perceived brightness of RGB color

I'm looking for some kind of formula or algorithm to determine the brightness of a color given the RGB values. I know it can't be as simple as adding the RGB values together and having higher sums be brighter, but I'm kind of at a loss as to where to start.

like image 784
robmerica Avatar asked Feb 27 '09 19:02

robmerica


People also ask

How do you calculate brightness in RGB?

You can calculate subjective brightness of an RGB value by weighting the three channels according to their perceived brightness, e.g. with something like: (0.21 × R) + (0.72 × G) + (0.07 × B) So, for instance, that makes yellow ( #ffff00 ) twice as intense as red ( #ff0000 ).

How are RGB values calculated?

The function R*0.2126+ G*0.7152+ B*0.0722 is said to calculate the perceived brightness (or equivalent grayscale color) for a given an RGB color. Assuming we use the interval [0,1] for all RGB values, we can calculate the following: yellow = RGB(1,1,0) => brightness=0.9278.


1 Answers

The method could vary depending on your needs. Here are 3 ways to calculate Luminance:

  • Luminance (standard for certain colour spaces): (0.2126*R + 0.7152*G + 0.0722*B) source img

  • Luminance (perceived option 1): (0.299*R + 0.587*G + 0.114*B) source img

  • Luminance (perceived option 2, slower to calculate): sqrt( 0.241*R^2 + 0.691*G^2 + 0.068*B^2 )sqrt( 0.299*R^2 + 0.587*G^2 + 0.114*B^2 ) (thanks to @MatthewHerbst) source img

[Edit: added examples using named css colors sorted with each method.]

like image 156
Anonymous Avatar answered Sep 27 '22 20:09

Anonymous