1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
#
# Sample: Convert from sRGB to XYZ perceptual intent
#
from lcms import *
print "Enter sRGB values, 0..255"
#
# Create placeholder for colorant
#
color = COLORB()
color[0] = input("R?")
color[1] = input("G?")
color[2] = input("B?")
#
# Create placeholder for Lab
#
XYZ = cmsCIEXYZ()
#
# Open profiles (does use built-ins)
#
hsRGB = cmsCreate_sRGBProfile()
hXYZ = cmsCreateXYZProfile()
#
# The transform
#
xform = cmsCreateTransform(hsRGB, TYPE_RGB_8, hXYZ, TYPE_XYZ_DBL, INTENT_PERCEPTUAL, cmsFLAGS_NOTPRECALC)
cmsDoTransform(xform, color, XYZ, 1)
#
# Print results
#
print "sRGB = ", color[0], color[1], color[2]
print XYZ
xyY = cmsCIExyY(0, 0, 0)
cmsXYZ2xyY(xyY, XYZ)
print xyY
#
# Free all stuff
#
cmsDeleteTransform(xform)
cmsCloseProfile(hXYZ)
cmsCloseProfile(hsRGB)
|