RGB色彩空间转换到LAB色彩空间需要两步:RGB->XYZ, XYZ->LAB 。
第一步:sRGB转到XYZ
//sR, sG and sB (Standard RGB) input range = 0 ÷ 255
//X, Y and Z output refer to a D65/2° standard illuminant.
var_R = ( sR / 255 )
var_G = ( sG / 255 )
var_B = ( sB / 255 )
if ( var_R > 0.04045 ) var_R = ( ( var_R + 0.055 ) / 1.055 ) ^ 2.4
else var_R = var_R / 12.92
if ( var_G > 0.04045 ) var_G = ( ( var_G + 0.055 ) / 1.055 ) ^ 2.4
else var_G = var_G / 12.92
if ( var_B > 0.04045 ) var_B = ( ( var_B + 0.055 ) / 1.055 ) ^ 2.4
else var_B = var_B / 12.92
var_R = var_R * 100
var_G = var_G * 100
var_B = var_B * 100
X = var_R * 0.4124 + var_G * 0.3576 + var_B * 0.1805
Y = var_R * 0.2126 + var_G * 0.7152 + var_B * 0.0722
Z = var_R * 0.0193 + var_G * 0.1192 + var_B * 0.9505
第二步:XYZ转到LAB
//Reference-X, Y and Z refer to specific illuminants and observers.
//Common reference values are available below in this same page.
var_X = X / Reference-X
var_Y = Y / Reference-Y
var_Z = Z / Reference-Z
if ( var_X > 0.008856 ) var_X = var_X ^ ( 1/3 )
else var_X = ( 7.787 * var_X ) + ( 16 / 116 )
if ( var_Y > 0.008856 ) var_Y = var_Y ^ ( 1/3 )
else var_Y = ( 7.787 * var_Y ) + ( 16 / 116 )
if ( var_Z > 0.008856 ) var_Z = var_Z ^ ( 1/3 )
else var_Z = ( 7.787 * var_Z ) + ( 16 / 116 )
CIE-L* = ( 116 * var_Y ) - 16
CIE-a* = 500 * ( var_X - var_Y )
CIE-b* = 200 * ( var_Y - var_Z )
RGB工作空间信息
Name | Gamma | Reference White | Red Primary | Green Primary | Blue Primary | Volume (ΔE3) | Lab Gamut Efficiency % | Coding Efficiency % | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
x | y | Y | x | y | Y | x | y | Y | ||||||
Lab Gamut | - | D50 | - | - | - | - | - | - | - | - | - | 2,381,085 | 97.0 | 35.1 |
Adobe RGB (1998) | 2.2 | D65 | 0.6400 | 0.3300 | 0.297361 | 0.2100 | 0.7100 | 0.627355 | 0.1500 | 0.0600 | 0.075285 | 1,208,631 | 50.6 | 100.0 |
Apple RGB | 1.8 | D65 | 0.6250 | 0.3400 | 0.244634 | 0.2800 | 0.5950 | 0.672034 | 0.1550 | 0.0700 | 0.083332 | 798,403 | 33.5 | 100.0 |
Best RGB | 2.2 | D50 | 0.7347 | 0.2653 | 0.228457 | 0.2150 | 0.7750 | 0.737352 | 0.1300 | 0.0350 | 0.034191 | 2,050,725 | 77.6 | 96.5 |
Beta RGB | 2.2 | D50 | 0.6888 | 0.3112 | 0.303273 | 0.1986 | 0.7551 | 0.663786 | 0.1265 | 0.0352 | 0.032941 | 1,717,450 | 69.3 | 99.0 |
Bruce RGB | 2.2 | D65 | 0.6400 | 0.3300 | 0.240995 | 0.2800 | 0.6500 | 0.683554 | 0.1500 | 0.0600 | 0.075452 | 988,939 | 41.5 | 100.0 |
CIE RGB | 2.2 | E | 0.7350 | 0.2650 | 0.176204 | 0.2740 | 0.7170 | 0.812985 | 0.1670 | 0.0090 | 0.010811 | 1,725,261 | 64.3 | 96.1 |
ColorMatch RGB | 1.8 | D50 | 0.6300 | 0.3400 | 0.274884 | 0.2950 | 0.6050 | 0.658132 | 0.1500 | 0.0750 | 0.066985 | 836,975 | 35.2 | 100.0 |
Don RGB 4 | 2.2 | D50 | 0.6960 | 0.3000 | 0.278350 | 0.2150 | 0.7650 | 0.687970 | 0.1300 | 0.0350 | 0.033680 | 1,802,358 | 72.1 | 98.8 |
ECI RGB v2 | L* | D50 | 0.6700 | 0.3300 | 0.320250 | 0.2100 | 0.7100 | 0.602071 | 0.1400 | 0.0800 | 0.077679 | 1,331,362 | 55.3 | 99.7 |
Ekta Space PS5 | 2.2 | D50 | 0.6950 | 0.3050 | 0.260629 | 0.2600 | 0.7000 | 0.734946 | 0.1100 | 0.0050 | 0.004425 | 1,623,899 | 65.7 | 99.5 |
NTSC RGB | 2.2 | C | 0.6700 | 0.3300 | 0.298839 | 0.2100 | 0.7100 | 0.586811 | 0.1400 | 0.0800 | 0.114350 | 1,300,252 | 54.2 | 99.9 |
PAL/SECAM RGB | 2.2 | D65 | 0.6400 | 0.3300 | 0.222021 | 0.2900 | 0.6000 | 0.706645 | 0.1500 | 0.0600 | 0.071334 | 849,831 | 35.7 | 100.0 |
ProPhoto RGB | 1.8 | D50 | 0.7347 | 0.2653 | 0.288040 | 0.1596 | 0.8404 | 0.711874 | 0.0366 | 0.0001 | 0.000086 | 2,879,568 | 91.2 | 87.3 |
SMPTE-C RGB | 2.2 | D65 | 0.6300 | 0.3400 | 0.212395 | 0.3100 | 0.5950 | 0.701049 | 0.1550 | 0.0700 | 0.086556 | 758,857 | 31.9 | 100.0 |
sRGB | ≈2.2 | D65 | 0.6400 | 0.3300 | 0.212656 | 0.3000 | 0.6000 | 0.715158 | 0.1500 | 0.0600 | 0.072186 | 832,870 | 35.0 | 100.0 |
Wide Gamut RGB | 2.2 | D50 | 0.7350 | 0.2650 | 0.258187 | 0.1150 | 0.8260 | 0.724938 | 0.1570 | 0.0180 | 0.016875 | 2,164,221 | 77.6 | 91.9 |
来源:
http://www.brucelindbloom.com/index.html?WorkingSpaceInfo.html