这是两个函数,CIE标准的变换;和Adobe的不一样
Step1:
XYZ to RGB (采用 D65 白点):
[ R ] [ 3.240479 -1.537150 -0.498535 ] [ X ]
[ G ] = [ -0.969256 1.875992 0.041556 ] * [ Y ]
[ B ] [ 0.055648 -0.204043 1.057311 ] [ Z ].
R, G, B 在 [0,1].
逆变换:
[ X ] [ 0.412453 0.357580 0.180423 ] [ R ]
[ Y ] = [ 0.212671 0.715160 0.072169 ] * [ G ]
[ Z ] [ 0.019334 0.119193 0.950227 ] [ B ]
Step2:
XYZ to CIE L*a*b* (CIELAB) & CIELAB to XYZ
L* = 116 * (Y/Yn)1/3 - 16 若 Y/Yn > 0.008856
L* = 903.3 * Y/Yn 其他
a* = 500 * ( f(X/Xn) - f(Y/Yn) )
b* = 200 * ( f(Y/Yn) - f(Z/Zn) )
其中 f(t) = t1/3 若 t > 0.008856
f(t) = 7.787 * t + 16/116 其他
其中Xn, Yn 和 Zn是参考白的三刺激值。
逆变换( Y/Yn > 0.008856) :
X = Xn * ( P + a* / 500 ) 3
Y = Yn * P 3
Z = Zn * ( P - b* / 200 ) 3
其中 P = (L* + 16) / 116
====================================================================
这是我的代码:按照CIE走的,出来的结果和大家常用的PhotoShop的是不一样的;