色相_饱和度的算法.

色相/饱和度的 算法
看sunshijiu的关于寻找r=g=b的那个调整的时候很想知道ps里的色相/饱和度算法。
以下只涉及到关于色相调整的某一部分。
首先色相/饱和度的调整和色相环有关系的。

RGB的分布可以通过通道看到

在0的左右各60度内R不变化,在正方向从60度到120度递减到0,在负方向上从-60到-120(即300度到240度)递减到0,在剩下的区间为零。
G和B类似。
这个分布要影响到下面的计算。

如果某个点的颜色值为Rx,Gx,Bx.
并调整它的master色相值H(-180《=H<=180).
最后的结果可以这样计算:
1,将Rx,Gx,Bx标到三个轴上:R轴x=0;G轴x+y*3~(1/2)=0;B轴x-y*3~(1/2)=0
以颜色值180,90,60为例,
得到三个点的坐标(0,180)(45*3~(1/2),-45)(-52*3~(1/2),-30)
将三点连接构成三角形,取其重心,将重心和原点连接可以确定该颜色在色相环上的度数。arctg(3~(1/2)/7)=14度到15度中间。取14.5
1.1 R的值
如果色相的调整范围在-(60+14.5)与(60-14.5)之间那么R值不变
从-(60+14.5)到-(120+14.5)与从(60-14.5)到(120-14.5)R值将逐渐递减到Rx,Gx,Bx中最小的值60,在剩下的区间里R值保持60.
1.2 G的值
色相的调整范围从0到(60-14.5)G的值从90逐渐增加到180
色相的调整范围从0到-14.5,G的值从90逐渐递减到Bx=60.
色相的调整范围从(60-14.5)到(180-14.5)G的值将保持不变,从(180-14.5)到(240-14.5)(晕了!好像受限制了)G的值从180递减到Bx=60
在剩下的区间G的值保持60不变
1.3 B的值
色相的调整范围从0到-14.5与从0到(120-14.5)B的值保持不变
色相的调整范围从-14.5到-(60+14.5)与(120-14.5)到(180-14.5)B的值逐渐增加到Rx=180.
其余区间B的值保持为Rx=180

请大家验证。
感觉这个算法不是很对称。

相关文档
最新文档