Created by
Andrei Zhlobich
|
def parse_color(c):
assert c.startswith("#")
return tuple(
int(c[2 * i + 1 : 2 * i + 3], 16) / 256.
for i in range(4))
def mix_colors(c1, c2):
r1, g1, b1, a1 = c1
r2, g2, b2, a2 = c2
ax = a2 * (1 - a1)
a = a1 + ax
r = (r1 * a1 + r2 * ax) / a
g = (g1 * a1 + g2 * ax) / a
b = (b1 * a1 + b2 * ax) / a
return r, g, b, a
def print_color(c):
return "#" + "".join("%02x" % int(x * 256) for x in c)
def pmp(a, b):
return print_color(
mix_colors(
parse_color(a),
parse_color(b)))
print(pmp('#f1f594cc', '#c6f67180'))
print(pmp('#f1f594cc', '#1d33b380'))
|