# [argyllcms] Re: Making profile of uncalibrated display

• From: Graeme Gill <graeme@xxxxxxxxxxxxx>
• To: argyllcms@xxxxxxxxxxxxx
• Date: Fri, 20 Apr 2012 10:12:59 +1000

```Ivan Tsyba wrote:
> .cal file contains  256 rows RGB_I RGB_R RGB_G RGB_B table and .ti3 file
> contains  48 rows RGB_R
> RGB_G RGB_B XYZ_X XYZ_Y XYZ_Z table. How to append that 256 elements on 48
> elements?
> So it maybe little bit more sophisticated that just replacing RGB values from
> cal to ti3 file?

They are not appended, the values are replaced by their looked up values.

So:

for each row of the .ti3 file., ie:

SAMPLE_ID RGB_R RGB_G RGB_B ....
.
17 1.4275 34.039 73.682 ...

for each of R, G & B, ie:
G = 34.039

Normalize G = 34.039/100 = 0.34039

Locate lookup point in .cal file for a G value of 0.34039
by locating the RGB_I value it lies between:

RGB_I RGB_R RGB_G RGB_B
0.33725 0.36240 0.39923 0.35515
0.34118 0.36562 0.40221 0.35843

Linearly interpolate the G value
cal_G = (0.34039 - 0.33725)/(0.34118 - 0.33725) * 0.40221
+ (0.34118 - 0.34039)/(0.34118 - 0.33725) * 0.39923
= 0.40161

[Note        (0.34039 - 0.33725)/(0.34118 - 0.33725) =
1.0 - (0.34118 - 0.34039)/(0.34118 - 0.33725)]

De-normalize the calibrated G value

cal_G *= 100.0

Replace the G value with its calibrated value in the .ti3 file:

17 nnnnn 40.161 nnnnn ...

etc.

etc.

Graeme Gill.

```