引言
颜色改变的太突然会造成一种视觉的冲击,比如目前很流行的撞色衣服
但是很多的情况下我们需要处理出一种过度色的效果,如下衣服
计算出两种颜色的过渡过程就是一个比较有意思的过程,虽然PS种可以直接用渐进色代替。如何用程序来表示呢?
RGB 介绍
RGB色彩是工业上的一种感色彩的表示,是通过红色(red) , 绿色(greed) , 蓝色(blue)三个颜色的变化与重叠来表示出各种颜色,最初的彩色电视机就是这种标准。每一个通道可用0-255来表示,没有负数,没有超过255的值。其中【0,0,0】表示黑色 , 【255,255,255】表示黑色
线性插值
线性插值(linear interpolation)一种插值方法.指以线性函数为插值函数的插值方法.具体可以参考link
颜色过渡
了解上述介绍之后,就可以编写代码来实现颜色的过渡了,实现过程如下:
1,输入两个颜色的RGB值,
2,设置变化因子f(0
def blend_color(color1, color2, f):
r1, g1, b1 = color1
r2, g2, b2 = color2
r = r1 + (r2 - r1) * f
g = g1 + (g2 - g1) * f
b = b1 + (b2 - b1) * f
return r, g, b