d65->d50 chromatic adaptation matrix (Bradford Method) 1.047811 0.029542 -0.009235 0.022887 0.990484 0.015044 -0.050127 -0.017049 0.752132 cam = [ Bradford ] c [ inverseof(Bradford) ] sRGB (d65) 0.412424 0.212656 0.019332 0.357579 0.715158 0.119193 0.180464 0.072186 0.950444 = srgb_d65 adapted sRGB (d50) 0.436040 0.222487 0.013931 0.385068 0.716884 0.097105 0.143102 0.060626 0.714279 srgb_d50 = srgb_d65 [ cam ] ProPhoto (d50) 0.797675 0.288040 0.000000 0.135192 0.711874 0.000000 0.031353 0.000086 0.825210 = pro adapted ProPhoto RGB 0.529304 0.098366 0.016882 0.330076 0.873468 0.117673 0.140602 0.028168 0.865572 adapted_pro = inverseof( pro . inverseof( srgb_d50 ) ) or adapted_pro = srgb_d50 . inverseof( pro ) so applying "xyzd50_srgb * inv( out_rgb )" with out_rgb = adapted_pro and xyzd50_srgb = srgb_d50 srgb_d50 . inverseof( srgb_d50 . inverseof( pro ) ) = srgb_d50 . pro . inverseof( srgb_d50 ) = pro, which is stored in ICC profile ---------------------------- Wide (d50) 0.716105 0.258187 0.000000 0.100930 0.724938 0.051781 0.147186 0.016875 0.773429 = wide adapted Wide 0.593069 0.095412 0.011624 0.404687 0.843152 0.069102 0.002201 0.061443 0.919408 adapted_wide = srgb_d50 . inverseof( wide )