-
Notifications
You must be signed in to change notification settings - Fork 39
/
Copy pathcolour.py
69 lines (61 loc) · 1.92 KB
/
colour.py
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
63
64
65
66
67
68
"""
colour
"""
from pptx.dml.color import RGBColor, MSO_THEME_COLOR
import re
RGBRegex = re.compile("#([0-9a-fA-F]{6})")
def setColour(x, colour):
colourType, colourValue = colour
if colourType == "Theme":
x.theme_color = colourValue
else:
x.rgb = RGBColor.from_string(colourValue[1:])
def parseThemeColour(value):
value2 = value.upper()
if value2 == "NONE":
return MSO_THEME_COLOR.NOT_THEME_COLOR
elif value2 == "ACCENT 1":
return MSO_THEME_COLOR.ACCENT_1
elif value2 == "ACCENT 2":
return MSO_THEME_COLOR.ACCENT_2
elif value2 == "ACCENT 3":
return MSO_THEME_COLOR.ACCENT_3
elif value2 == "ACCENT 4":
return MSO_THEME_COLOR.ACCENT_4
elif value2 == "ACCENT 5":
return MSO_THEME_COLOR.ACCENT_5
elif value2 == "ACCENT 6":
return MSO_THEME_COLOR.ACCENT_6
elif value2 == "BACKGROUND 1":
return MSO_THEME_COLOR.BACKGROUND_1
elif value2 == "BACKGROUND 2":
return MSO_THEME_COLOR.BACKGROUND_2
elif value2 == "DARK 1":
return MSO_THEME_COLOR.DARK_1
elif value2 == "DARK 2":
return MSO_THEME_COLOR.DARK_2
elif value2 == "FOLLOWED HYPERLINK":
return MSO_THEME_COLOR.FOLLOWED_HYPERLINK
elif value2 == "HYPERLINK":
return MSO_THEME_COLOR.HYPERLINK
elif value2 == "LIGHT 1":
return MSO_THEME_COLOR.LIGHT_1
elif value2 == "LIGHT 2":
return MSO_THEME_COLOR.LIGHT_2
elif value2 == "TEXT 1":
return MSO_THEME_COLOR.TEXT_1
elif value2 == "TEXT 2":
return MSO_THEME_COLOR.TEXT_2
elif value2 == "MIXED":
return MSO_THEME_COLOR.MIXED
def parseColour(value):
if value[0] == "#":
return ("RGB", value)
else:
return ("Theme", parseThemeColour(value))
def parseRGB(str):
if RGBmatch := RGBRegex.match(str):
# Matches
return (True, RGBmatch.group(1))
else:
return (False, "")