def mix(fgcolor, bgcolor, mix_alpha):
""" Creates a composite rgb of a foreground rgba and a background rgb.
- fgcolor: an rgb of floats
- bgcolor: an rgb of floats
- mix_alpha: (0.0 - 1.0) the proportion of fgcolor mixed
into bgcolor
"""
src_r, src_g, src_b = fgcolor.red, fgcolor.green, fgcolor.blue
bg_r, bg_g, bg_b = bgcolor.red, bgcolor.green, bgcolor.blue
# Source: http://en.wikipedia.org/wiki/Alpha_compositing
r = ((1 - mix_alpha) * bg_r) + (mix_alpha * src_r)
g = ((1 - mix_alpha) * bg_g) + (mix_alpha * src_g)
b = ((1 - mix_alpha) * bg_b) + (mix_alpha * src_b)
return Gdk.RGBA(red=r, green=g, blue=b)
评论列表
文章目录