我正在尝试将两个以元组形式给出的RGBA颜色进行合并,例如(0, 0, 0, 128)和(255, 255, 255, 128)。我已经找到了这篇文章,对我很有帮助,但是我的当前代码是Python。
def get_color(colorRGBA1, colorRGBA2):
alpha = 255 - (255 - colorRGBA1[3]) * (255 - colorRGBA2[3])
red = (colorRGBA1[0] * (255 - colorRGBA2[3]) + colorRGBA2[0] * colorRGBA2[3]) / 255
green = (colorRGBA1[1] * (255 - colorRGBA2[3]) + colorRGBA2[1] * colorRGBA2[3]) / 255
blue = (colorRGBA1[2] * (255 - colorRGBA2[3]) + colorRGBA2[2] * colorRGBA2[3]) / 255
return (int(red), int(green), int(blue), int(alpha))
某些情况下,返回一些奇怪的数字(如-15874)作为alpha值。其他所有内容都正常工作,但我无法弄清楚如何获取新颜色的alpha值。
两种颜色的alpha值将在0到255之间。