-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcolourConv.py
More file actions
58 lines (47 loc) · 1.77 KB
/
colourConv.py
File metadata and controls
58 lines (47 loc) · 1.77 KB
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
#!/usr/bin/python
import colorsys
# input a hex number
# output an object with each
def splitHexColour(hexCol):
r = (hexCol >> (2*8)) & 0x0ff
g = (hexCol >> (8)) & 0x0ff
b = (hexCol) & 0x0ff
return {'r':r, 'g':g, 'b':b}
# convert value out of 0xff to a percentage
def percentify(val):
return (float(val)/255.0)
# convert a percentage to a value out of 0xff
def hexify(percent):
return ( int( percent*255.0) )
# accept a colour value in hex
# return an object with the corresponding HSV value (0x00 to 0xff)
def hexColourToJevoisHsv(colourHex):
colourVals = splitHexColour(colourHex)
percentColourVals = {
'r':percentify(colourVals['r']),
'g':percentify(colourVals['g']),
'b':percentify(colourVals['b'])
}
print ("Converting 0x%06x (%.02f, %.02f, %.02f) to HSV"%(colourHex, percentColourVals['r'], percentColourVals['g'], percentColourVals['b']))
hsvPercentVals = colorsys.rgb_to_hsv(percentColourVals['r'], percentColourVals['g'], percentColourVals['b'])
hsvVals = {
'h': hexify(hsvPercentVals[0]),
's': hexify(hsvPercentVals[1]),
'v': hexify(hsvPercentVals[2])
}
print ("HSV: %d %d %d (%.02f, %.02f, %.02f)"%(hsvVals['h'], hsvVals['s'], hsvVals['v'], hsvPercentVals[0], hsvPercentVals[1], hsvPercentVals[2]) )
return hsvVals
# accept a colour value in HSV (360deg, 1, 1)
# return an object with the corresponding HSV value (0x00 to 0xff)
def hsvToJevoisHsv(colourHsv):
hsvVals = {}
try:
hsvVals = {
'h': hexify(float(colourHsv['h'])/360.0),
's': hexify(float(colourHsv['s'])),
'v': hexify(float(colourHsv['v']))
}
print ("HSV: %d %d %d (%.02fdeg, %.02f, %.02f)"%(hsvVals['h'], hsvVals['s'], hsvVals['v'], colourHsv['h'], colourHsv['s'], colourHsv['v']) )
except:
print ("ERROR: Could not read Hue value correctly")
return hsvVals