我正在尝试以编程方式实现 Photoshop 的渐变图。考虑下面显示的渐变图,其中所有白色分量都被绿色替换,黑色被蓝色替换。对于其他颜色成分,Photoshop 根据蓝色和绿色之间的线性渐变进行计算。我知道这个计算背后有一个数学。有没有人知道找到特定输入颜色值的输出颜色的公式?
Photoshop中渐变贴图背后的数学原理是什么?
平面设计
adobe-photoshop
坡度
2022-01-15 08:29:41
1个回答
对于大多数计算,Photoshop 单独使用每个 RGB 通道,而不考虑其他两个(只要您处于 RGB 模式,在 CMYK 模式下,事情可能会变得很奇怪)。
Photoshop 只是对每个通道进行线性插值。如果我们这样定义颜色(并假设从 0 开始的 2d 渐变以使事情变得更容易):
Starting color: [r0, g0, b0]
End color: [r1, g1, b1]
starting positon: 0
end positon: l
current position: p
现在对于沿线的每个点,每个通道的公式如下:
r = r0 + ( r1 - r0 ) * (p/(l-1)) )
假设您想要在 5 个像素的距离上从黄色 (255, 255, 20) 到青色 (0, 255, 200) 的渐变,您最终会得到:
0 1 2 3 4
r: 255 192 127 64 0
g: 255 255 255 255 255
b: 20 65 110 155 200
如您所见,每个通道在相同数量的像素上的变化始终相同(r1 - r0)。在这种情况下:
r: -63.75
g: 0
b: +45
其它你可能感兴趣的问题