Search code examples
pdfpostscriptcolor-space

PDF: CalGray to DeviceRGB color space


I'm using this website http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html to convert CalGray to DeviceRGB color space.

During the conversion there are still some questions...

Converting CalGray to DeviceRGb takes 3 steps:

  1. Converting CalGray to XYZ values
  2. Convert XYZ to linear RGB
  3. Companding (compression and expanding)

Step 1: Convert CalGray to Xs Ys Zs values using formula Xwhitepoint * Graylevel^Gamma

whitepoint is the white point defined in CalGray and the Xs Ys Zs values are the XYZ values from the source, s.

Step 2: XYZ to linear RGB

because the formula from brucelindbloom's website uses transformation matrix [M], I need to calculate this one first.

Can I just use the Xs Ys Zs values from step 1 or should these be first calculated to Xd Yd Zd (d=destination) values using Chromatic adaptation?

Chromatic adaptation see: http://www.brucelindbloom.com/index.html?Eqn_ChromAdapt.html

Because I need to calculate [M] I need to find the x and y chromaticity values x and y. Therefor go from XYZ to xyY space. S values will also be calculated to use in the matrix.

see: http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html

Step 3: Companding

There is Gamma, sRGB and L* companding, which one should be used?

(note: I'm using PDF version 1.3)


Solution

  • Device* color spaces are used when you as color data supplier know everything about the device beforehand. So the RIP does not need to perform any conversion on its side. This means you have to use a calibrated color space to perform the conversion. There is no conversion to Device* color space without the device profile.