I’m writing a colour picker that gets the pixel RGB values from wherever you point to on the screen. I want to also have the option of specifying that the colour I picked already has an alpha value. I’m just wondering how I can calculate the resulting colour.
For example:
The resulting pixel colour is 240,247,249 but I know that the original colour had a 10% opacity and was on top of a white (255,255,255) background. What’s the calculation to work out the original RGB values?
The standard blending equation is:
Where
out,newandoldare RGB colors, andalphais a floating point number in the range [0,1].So, you have (for red):
Solving for
newR, we get:which evaluates to 105. Repeat for the other components, and you’re done.