class HexaPDF::ImageLoader::PNG
def calrgb_definition_from_chrm(xw, yw, xr, yr, xg, yg, xb, yb)
of the white point and the red, green and blue primaries.
Returns a hash for a CalRGB color space definition using the x,y chromaticity coordinates
def calrgb_definition_from_chrm(xw, yw, xr, yr, xg, yg, xb, yb) z = yw * ((xg - xb) * yr - (xr - xb) * yg + (xr - xg) * yb) mya = yr * ((xg - xb) * yw - (xw - xb) * yg + (xw - xg) * yb) / z mxa = mya * xr / yr mza = mya * ((1 - xr) / yr - 1) myb = - (yg * ((xr - xb) * yw - (xw - xb) * yr + (xw - xr) * yb)) / z mxb = myb * xg / yg mzb = myb * ((1 - xg) / yg - 1) myc = yb * ((xr - xg) * yw - (xw - xg) * yr + (xw - xr) * yg) / z mxc = myc * xb / yb mzc = myc * ((1 - xb) / yb - 1) mxw = mxa + mxb + mxc myw = 1.0 # mya + myb + myc mzw = mza + mzb + mzc {WhitePoint: [mxw, myw, mzw], Matrix: [mxa, mya, mza, mxb, myb, mzb, mxc, myc, mzc]} end