|
XYZ —> RGB
- var_X = X / 100 //X from 0 to 95.047 (Observer = 2°, Illuminant = D65)
- var_Y = Y / 100 //Y from 0 to 100.000
- var_Z = Z / 100 //Z from 0 to 108.883
- var_R = var_X * 3.2406 + var_Y * -1.5372 + var_Z * -0.4986
- var_G = var_X * -0.9689 + var_Y * 1.8758 + var_Z * 0.0415
- var_B = var_X * 0.0557 + var_Y * -0.2040 + var_Z * 1.0570
- if ( var_R > 0.0031308 ) var_R = 1.055 * ( var_R ^ ( 1 / 2.4 ) ) - 0.055
- else var_R = 12.92 * var_R
- if ( var_G > 0.0031308 ) var_G = 1.055 * ( var_G ^ ( 1 / 2.4 ) ) - 0.055
- else var_G = 12.92 * var_G
- if ( var_B > 0.0031308 ) var_B = 1.055 * ( var_B ^ ( 1 / 2.4 ) ) - 0.055
- else var_B = 12.92 * var_B
- R = var_R * 255
- G = var_G * 255
- B = var_B * 255
复制代码 RGB —> XYZ
- var_R = ( R / 255 ) //R from 0 to 255
- var_G = ( G / 255 ) //G from 0 to 255
- var_B = ( B / 255 ) //B from 0 to 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
- //Observer. = 2°, Illuminant = D65
- 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
复制代码
|
|