Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

formula for alpha value when blending two transparent colors

lets assume an alpha of 1 means fully opaque and 0 means fully transparent. lets say i have two black images which have 50% transparency (alpha = 0.5).

if they are laid on top of each other, the resulting transparency is 0.75, right?

if they would have an alpha of 0.25 , the result would be around 0.5, right?

if they would have an alpha of 0.9 , the result would be around 0.97, right?

how can you get to these numbers?

in other words i am looking for a function that gets the resulting alpha value from two other alpha value.

float alpha = f(float alphaBelow, float alphaAbove)
{
     //TODO implement
}
like image 356
clamp Avatar asked Sep 07 '10 12:09

clamp


1 Answers

This answer is mathematically the same as Jason's answer, but this is the actual formula as you'll find it in reference material.

float blend(float alphaBelow, float alphaAbove) 
{ 
    return alphaBelow + (1.0 - alphaBelow) * alphaAbove; 
} 
like image 74
Mark Ransom Avatar answered Oct 01 '22 16:10

Mark Ransom