1
|
|
|
<?php |
2
|
|
|
/** |
3
|
|
|
* X11 Data Class |
4
|
|
|
* ================ |
5
|
|
|
* Stores data for importing X11 colors. |
6
|
|
|
*/ |
7
|
|
|
|
8
|
|
|
namespace projectcleverweb\color\data; |
9
|
|
|
|
10
|
|
|
/** |
11
|
|
|
* X11 Data Class |
12
|
|
|
* ================ |
13
|
|
|
* Stores data for importing X11 colors. |
14
|
|
|
*/ |
15
|
|
|
class x11 { |
16
|
|
|
|
17
|
|
|
/** |
18
|
|
|
* Array mapping of all the X11 colors to RGB |
19
|
|
|
* @var array |
20
|
|
|
*/ |
21
|
|
|
public static $map = array( |
22
|
|
|
'aliceblue' => array('r' => 240, 'g' => 248, 'b' => 255), |
23
|
|
|
'antiquewhite' => array('r' => 250, 'g' => 235, 'b' => 215), |
24
|
|
|
'aqua' => array('r' => 0, 'g' => 255, 'b' => 255), |
25
|
|
|
'aquamarine' => array('r' => 127, 'g' => 255, 'b' => 212), |
26
|
|
|
'azure' => array('r' => 240, 'g' => 255, 'b' => 255), |
27
|
|
|
'beige' => array('r' => 245, 'g' => 245, 'b' => 220), |
28
|
|
|
'bisque' => array('r' => 255, 'g' => 228, 'b' => 196), |
29
|
|
|
'black' => array('r' => 0, 'g' => 0, 'b' => 0), |
30
|
|
|
'blanchedalmond' => array('r' => 255, 'g' => 235, 'b' => 205), |
31
|
|
|
'blue' => array('r' => 0, 'g' => 0, 'b' => 255), |
32
|
|
|
'blueviolet' => array('r' => 138, 'g' => 43, 'b' => 226), |
33
|
|
|
'brown' => array('r' => 165, 'g' => 42, 'b' => 42), |
34
|
|
|
'burlywood' => array('r' => 222, 'g' => 184, 'b' => 135), |
35
|
|
|
'cadetblue' => array('r' => 95, 'g' => 158, 'b' => 160), |
36
|
|
|
'chartreuse' => array('r' => 127, 'g' => 255, 'b' => 0), |
37
|
|
|
'chocolate' => array('r' => 210, 'g' => 105, 'b' => 30), |
38
|
|
|
'coral' => array('r' => 255, 'g' => 127, 'b' => 80), |
39
|
|
|
'cornflowerblue' => array('r' => 100, 'g' => 149, 'b' => 237), |
40
|
|
|
'cornsilk' => array('r' => 255, 'g' => 248, 'b' => 220), |
41
|
|
|
'crimson' => array('r' => 220, 'g' => 20, 'b' => 60), |
42
|
|
|
'cyan' => array('r' => 0, 'g' => 255, 'b' => 255), |
43
|
|
|
'darkblue' => array('r' => 0, 'g' => 0, 'b' => 139), |
44
|
|
|
'darkcyan' => array('r' => 0, 'g' => 139, 'b' => 139), |
45
|
|
|
'darkgoldenrod' => array('r' => 184, 'g' => 134, 'b' => 11), |
46
|
|
|
'darkgray' => array('r' => 169, 'g' => 169, 'b' => 169), |
47
|
|
|
'darkgreen' => array('r' => 0, 'g' => 100, 'b' => 0), |
48
|
|
|
'darkgrey' => array('r' => 169, 'g' => 169, 'b' => 169), |
49
|
|
|
'darkkhaki' => array('r' => 189, 'g' => 183, 'b' => 107), |
50
|
|
|
'darkmagenta' => array('r' => 139, 'g' => 0, 'b' => 139), |
51
|
|
|
'darkolivegreen' => array('r' => 85, 'g' => 107, 'b' => 47), |
52
|
|
|
'darkorange' => array('r' => 255, 'g' => 140, 'b' => 0), |
53
|
|
|
'darkorchid' => array('r' => 153, 'g' => 50, 'b' => 204), |
54
|
|
|
'darkred' => array('r' => 139, 'g' => 0, 'b' => 0), |
55
|
|
|
'darksalmon' => array('r' => 233, 'g' => 150, 'b' => 122), |
56
|
|
|
'darkseagreen' => array('r' => 143, 'g' => 188, 'b' => 143), |
57
|
|
|
'darkslateblue' => array('r' => 72, 'g' => 61, 'b' => 139), |
58
|
|
|
'darkslategray' => array('r' => 47, 'g' => 79, 'b' => 79), |
59
|
|
|
'darkslategrey' => array('r' => 47, 'g' => 79, 'b' => 79), |
60
|
|
|
'darkturquoise' => array('r' => 0, 'g' => 206, 'b' => 209), |
61
|
|
|
'darkviolet' => array('r' => 148, 'g' => 0, 'b' => 211), |
62
|
|
|
'deeppink' => array('r' => 255, 'g' => 20, 'b' => 147), |
63
|
|
|
'deepskyblue' => array('r' => 0, 'g' => 191, 'b' => 255), |
64
|
|
|
'dimgray' => array('r' => 105, 'g' => 105, 'b' => 105), |
65
|
|
|
'dimgrey' => array('r' => 105, 'g' => 105, 'b' => 105), |
66
|
|
|
'dodgerblue' => array('r' => 30, 'g' => 144, 'b' => 255), |
67
|
|
|
'firebrick' => array('r' => 178, 'g' => 34, 'b' => 34), |
68
|
|
|
'floralwhite' => array('r' => 255, 'g' => 250, 'b' => 240), |
69
|
|
|
'forestgreen' => array('r' => 34, 'g' => 139, 'b' => 34), |
70
|
|
|
'fuchsia' => array('r' => 255, 'g' => 0, 'b' => 255), |
71
|
|
|
'gainsboro' => array('r' => 220, 'g' => 220, 'b' => 220), |
72
|
|
|
'ghostwhite' => array('r' => 248, 'g' => 248, 'b' => 255), |
73
|
|
|
'gold' => array('r' => 255, 'g' => 215, 'b' => 0), |
74
|
|
|
'goldenrod' => array('r' => 218, 'g' => 165, 'b' => 32), |
75
|
|
|
'gray' => array('r' => 128, 'g' => 128, 'b' => 128), |
76
|
|
|
'green' => array('r' => 0, 'g' => 128, 'b' => 0), |
77
|
|
|
'greenyellow' => array('r' => 173, 'g' => 255, 'b' => 47), |
78
|
|
|
'grey' => array('r' => 128, 'g' => 128, 'b' => 128), |
79
|
|
|
'honeydew' => array('r' => 240, 'g' => 255, 'b' => 240), |
80
|
|
|
'hotpink' => array('r' => 255, 'g' => 105, 'b' => 180), |
81
|
|
|
'indianred' => array('r' => 205, 'g' => 92, 'b' => 92), |
82
|
|
|
'indigo' => array('r' => 75, 'g' => 0, 'b' => 130), |
83
|
|
|
'ivory' => array('r' => 255, 'g' => 255, 'b' => 240), |
84
|
|
|
'khaki' => array('r' => 240, 'g' => 230, 'b' => 140), |
85
|
|
|
'lavender' => array('r' => 230, 'g' => 230, 'b' => 250), |
86
|
|
|
'lavenderblush' => array('r' => 255, 'g' => 240, 'b' => 245), |
87
|
|
|
'lawngreen' => array('r' => 124, 'g' => 252, 'b' => 0), |
88
|
|
|
'lemonchiffon' => array('r' => 255, 'g' => 250, 'b' => 205), |
89
|
|
|
'lightblue' => array('r' => 173, 'g' => 216, 'b' => 230), |
90
|
|
|
'lightcoral' => array('r' => 240, 'g' => 128, 'b' => 128), |
91
|
|
|
'lightcyan' => array('r' => 224, 'g' => 255, 'b' => 255), |
92
|
|
|
'lightgoldenrodyellow' => array('r' => 250, 'g' => 250, 'b' => 210), |
93
|
|
|
'lightgray' => array('r' => 211, 'g' => 211, 'b' => 211), |
94
|
|
|
'lightgreen' => array('r' => 144, 'g' => 238, 'b' => 144), |
95
|
|
|
'lightgrey' => array('r' => 211, 'g' => 211, 'b' => 211), |
96
|
|
|
'lightpink' => array('r' => 255, 'g' => 182, 'b' => 193), |
97
|
|
|
'lightsalmon' => array('r' => 255, 'g' => 160, 'b' => 122), |
98
|
|
|
'lightseagreen' => array('r' => 32, 'g' => 178, 'b' => 170), |
99
|
|
|
'lightskyblue' => array('r' => 135, 'g' => 206, 'b' => 250), |
100
|
|
|
'lightslategray' => array('r' => 119, 'g' => 136, 'b' => 153), |
101
|
|
|
'lightslategrey' => array('r' => 119, 'g' => 136, 'b' => 153), |
102
|
|
|
'lightsteelblue' => array('r' => 176, 'g' => 196, 'b' => 222), |
103
|
|
|
'lightyellow' => array('r' => 255, 'g' => 255, 'b' => 224), |
104
|
|
|
'lime' => array('r' => 0, 'g' => 255, 'b' => 0), |
105
|
|
|
'limegreen' => array('r' => 50, 'g' => 205, 'b' => 50), |
106
|
|
|
'linen' => array('r' => 250, 'g' => 240, 'b' => 230), |
107
|
|
|
'magenta' => array('r' => 255, 'g' => 0, 'b' => 255), |
108
|
|
|
'maroon' => array('r' => 128, 'g' => 0, 'b' => 0), |
109
|
|
|
'mediumaquamarine' => array('r' => 102, 'g' => 205, 'b' => 170), |
110
|
|
|
'mediumblue' => array('r' => 0, 'g' => 0, 'b' => 205), |
111
|
|
|
'mediumorchid' => array('r' => 186, 'g' => 85, 'b' => 211), |
112
|
|
|
'mediumpurple' => array('r' => 147, 'g' => 112, 'b' => 219), |
113
|
|
|
'mediumseagreen' => array('r' => 60, 'g' => 179, 'b' => 113), |
114
|
|
|
'mediumslateblue' => array('r' => 123, 'g' => 104, 'b' => 238), |
115
|
|
|
'mediumspringgreen' => array('r' => 0, 'g' => 250, 'b' => 154), |
116
|
|
|
'mediumturquoise' => array('r' => 72, 'g' => 209, 'b' => 204), |
117
|
|
|
'mediumvioletred' => array('r' => 199, 'g' => 21, 'b' => 133), |
118
|
|
|
'midnightblue' => array('r' => 25, 'g' => 25, 'b' => 112), |
119
|
|
|
'mintcream' => array('r' => 245, 'g' => 255, 'b' => 250), |
120
|
|
|
'mistyrose' => array('r' => 255, 'g' => 228, 'b' => 225), |
121
|
|
|
'moccasin' => array('r' => 255, 'g' => 228, 'b' => 181), |
122
|
|
|
'navajowhite' => array('r' => 255, 'g' => 222, 'b' => 173), |
123
|
|
|
'navy' => array('r' => 0, 'g' => 0, 'b' => 128), |
124
|
|
|
'oldlace' => array('r' => 253, 'g' => 245, 'b' => 230), |
125
|
|
|
'olive' => array('r' => 128, 'g' => 128, 'b' => 0), |
126
|
|
|
'olivedrab' => array('r' => 107, 'g' => 142, 'b' => 35), |
127
|
|
|
'orange' => array('r' => 255, 'g' => 165, 'b' => 0), |
128
|
|
|
'orangered' => array('r' => 255, 'g' => 69, 'b' => 0), |
129
|
|
|
'orchid' => array('r' => 218, 'g' => 112, 'b' => 214), |
130
|
|
|
'palegoldenrod' => array('r' => 238, 'g' => 232, 'b' => 170), |
131
|
|
|
'palegreen' => array('r' => 152, 'g' => 251, 'b' => 152), |
132
|
|
|
'paleturquoise' => array('r' => 175, 'g' => 238, 'b' => 238), |
133
|
|
|
'palevioletred' => array('r' => 219, 'g' => 112, 'b' => 147), |
134
|
|
|
'papayawhip' => array('r' => 255, 'g' => 239, 'b' => 213), |
135
|
|
|
'peachpuff' => array('r' => 255, 'g' => 218, 'b' => 185), |
136
|
|
|
'peru' => array('r' => 205, 'g' => 133, 'b' => 63), |
137
|
|
|
'pink' => array('r' => 255, 'g' => 192, 'b' => 203), |
138
|
|
|
'plum' => array('r' => 221, 'g' => 160, 'b' => 221), |
139
|
|
|
'powderblue' => array('r' => 176, 'g' => 224, 'b' => 230), |
140
|
|
|
'purple' => array('r' => 128, 'g' => 0, 'b' => 128), |
141
|
|
|
'red' => array('r' => 255, 'g' => 0, 'b' => 0), |
142
|
|
|
'rosybrown' => array('r' => 188, 'g' => 143, 'b' => 143), |
143
|
|
|
'royalblue' => array('r' => 65, 'g' => 105, 'b' => 225), |
144
|
|
|
'saddlebrown' => array('r' => 139, 'g' => 69, 'b' => 19), |
145
|
|
|
'salmon' => array('r' => 250, 'g' => 128, 'b' => 114), |
146
|
|
|
'sandybrown' => array('r' => 244, 'g' => 164, 'b' => 96), |
147
|
|
|
'seagreen' => array('r' => 46, 'g' => 139, 'b' => 87), |
148
|
|
|
'seashell' => array('r' => 255, 'g' => 245, 'b' => 238), |
149
|
|
|
'sienna' => array('r' => 160, 'g' => 82, 'b' => 45), |
150
|
|
|
'silver' => array('r' => 192, 'g' => 192, 'b' => 192), |
151
|
|
|
'skyblue' => array('r' => 135, 'g' => 206, 'b' => 235), |
152
|
|
|
'slateblue' => array('r' => 106, 'g' => 90, 'b' => 205), |
153
|
|
|
'slategray' => array('r' => 112, 'g' => 128, 'b' => 144), |
154
|
|
|
'slategrey' => array('r' => 112, 'g' => 128, 'b' => 144), |
155
|
|
|
'snow' => array('r' => 255, 'g' => 250, 'b' => 250), |
156
|
|
|
'springgreen' => array('r' => 0, 'g' => 255, 'b' => 127), |
157
|
|
|
'steelblue' => array('r' => 70, 'g' => 130, 'b' => 180), |
158
|
|
|
'tan' => array('r' => 210, 'g' => 180, 'b' => 140), |
159
|
|
|
'teal' => array('r' => 0, 'g' => 128, 'b' => 128), |
160
|
|
|
'thistle' => array('r' => 216, 'g' => 191, 'b' => 216), |
161
|
|
|
'tomato' => array('r' => 255, 'g' => 99, 'b' => 71), |
162
|
|
|
'turquoise' => array('r' => 64, 'g' => 224, 'b' => 208), |
163
|
|
|
'violet' => array('r' => 238, 'g' => 130, 'b' => 238), |
164
|
|
|
'wheat' => array('r' => 245, 'g' => 222, 'b' => 179), |
165
|
|
|
'white' => array('r' => 255, 'g' => 255, 'b' => 255), |
166
|
|
|
'whitesmoke' => array('r' => 245, 'g' => 245, 'b' => 245), |
167
|
|
|
'yellow' => array('r' => 255, 'g' => 255, 'b' => 0), |
168
|
|
|
'yellowgreen' => array('r' => 154, 'g' => 205, 'b' => 50) |
169
|
|
|
); |
170
|
|
|
|
171
|
|
|
/** |
172
|
|
|
* Gets a X11 color as RGB if it exists, otherwise returns FALSE. |
173
|
|
|
* |
174
|
|
|
* @param string $color The color name to search for |
175
|
|
|
* @return array|bool Returns a RGB color array if it exists, FALSE otherwise. |
176
|
|
|
*/ |
177
|
|
|
public static function get(string $color) { |
178
|
|
|
$color = strtolower(trim($color)); |
179
|
|
|
if (isset(static::$map[$color])) { |
180
|
|
|
return static::$map[$color]; |
181
|
|
|
} |
182
|
|
|
return FALSE; |
183
|
|
|
} |
184
|
|
|
} |
185
|
|
|
|