SHOW:
|
|
- or go back to the newest paste.
1 | from colorsys import * | |
2 | import math | |
3 | ||
4 | simple_colors = { | |
5 | "aliceblue":"f0f8ff", | |
6 | "antiquewhite":"faebd7", | |
7 | "aqua":"00ffff", | |
8 | "aquamarine":"7fffd4", | |
9 | "azure":"f0ffff", | |
10 | "beige":"f5f5dc", | |
11 | "bisque":"ffe4c4", | |
12 | "black":"000000", | |
13 | "blanchedalmond":"ffebcd", | |
14 | "blue":"0000ff", | |
15 | "blueviolet":"8a2be2", | |
16 | "brown":"a52a2a", | |
17 | "burlywood":"deb887", | |
18 | "cadetblue":"5f9ea0", | |
19 | "chartreuse":"7fff00", | |
20 | "chocolate":"d2691e", | |
21 | "coral":"ff7f50", | |
22 | "cornflowerblue":"6495ed", | |
23 | "cornsilk":"fff8dc", | |
24 | "crimson":"dc143c", | |
25 | "cyan":"00ffff", | |
26 | "darkblue":"00008b", | |
27 | "darkcyan":"008b8b", | |
28 | "darkgoldenrod":"b8860b", | |
29 | "darkgray":"a9a9a9", | |
30 | "darkgreen":"006400", | |
31 | "darkgrey":"a9a9a9", | |
32 | "darkkhaki":"bdb76b", | |
33 | "darkmagenta":"8b008b", | |
34 | "darkolivegreen":"556b2f", | |
35 | "darkorange":"ff8c00", | |
36 | "darkorchid":"9932cc", | |
37 | "darkred":"8b0000", | |
38 | "darksalmon":"e9967a", | |
39 | "darkseagreen":"8fbc8f", | |
40 | "darkslateblue":"483d8b", | |
41 | "darkslategray":"2f4f4f", | |
42 | "darkslategrey":"2f4f4f", | |
43 | "darkturquoise":"00ced1", | |
44 | "darkviolet":"9400d3", | |
45 | "deeppink":"ff1493", | |
46 | "deepskyblue":"00bfff", | |
47 | "dimgray":"696969", | |
48 | "dimgrey":"696969", | |
49 | "dodgerblue":"1e90ff", | |
50 | "firebrick":"b22222", | |
51 | "floralwhite":"fffaf0", | |
52 | "forestgreen":"228b22", | |
53 | "fuchsia":"ff00ff", | |
54 | "gainsboro":"dcdcdc", | |
55 | "ghostwhite":"f8f8ff", | |
56 | "gold":"ffd700", | |
57 | "goldenrod":"daa520", | |
58 | "gray":"808080", | |
59 | "green":"008000", | |
60 | "greenyellow":"adff2f", | |
61 | "grey":"808080", | |
62 | "honeydew":"f0fff0", | |
63 | "hotpink":"ff69b4", | |
64 | "indianred":"cd5c5c", | |
65 | "indigo":"4b0082", | |
66 | "ivory":"fffff0", | |
67 | "khaki":"f0e68c", | |
68 | "lavender":"e6e6fa", | |
69 | "lavenderblush":"fff0f5", | |
70 | "lawngreen":"7cfc00", | |
71 | "lemonchiffon":"fffacd", | |
72 | "lightblue":"add8e6", | |
73 | "lightcoral":"f08080", | |
74 | "lightcyan":"e0ffff", | |
75 | "lightgoldenrodyellow":"fafad2", | |
76 | "lightgray":"d3d3d3", | |
77 | "lightgreen":"90ee90", | |
78 | "lightgrey":"d3d3d3", | |
79 | "lightpink":"ffb6c1", | |
80 | "lightsalmon":"ffa07a", | |
81 | "lightseagreen":"20b2aa", | |
82 | "lightskyblue":"87cefa", | |
83 | "lightslategray":"778899", | |
84 | "lightslategrey":"778899", | |
85 | "lightsteelblue":"b0c4de", | |
86 | "lightyellow":"ffffe0", | |
87 | "lime":"00ff00", | |
88 | "limegreen":"32cd32", | |
89 | "linen":"faf0e6", | |
90 | "magenta":"ff00ff", | |
91 | "maroon":"800000", | |
92 | "mediumaquamarine":"66cdaa", | |
93 | "mediumblue":"0000cd", | |
94 | "mediumorchid":"ba55d3", | |
95 | "mediumpurple":"9370db", | |
96 | "mediumseagreen":"3cb371", | |
97 | "mediumslateblue":"7b68ee", | |
98 | "mediumspringgreen":"00fa9a", | |
99 | "mediumturquoise":"48d1cc", | |
100 | "mediumvioletred":"c71585", | |
101 | "midnightblue":"191970", | |
102 | "mintcream":"f5fffa", | |
103 | "mistyrose":"ffe4e1", | |
104 | "moccasin":"ffe4b5", | |
105 | "navajowhite":"ffdead", | |
106 | "navy":"000080", | |
107 | "oldlace":"fdf5e6", | |
108 | "olive":"808000", | |
109 | "olivedrab":"6b8e23", | |
110 | "orange":"ffa500", | |
111 | "orangered":"ff4500", | |
112 | "orchid":"da70d6", | |
113 | "palegoldenrod":"eee8aa", | |
114 | "palegreen":"98fb98", | |
115 | "paleturquoise":"afeeee", | |
116 | "palevioletred":"db7093", | |
117 | "papayawhip":"ffefd5", | |
118 | "peachpuff":"ffdab9", | |
119 | "peru":"cd853f", | |
120 | "pink":"ffc0cb", | |
121 | "plum":"dda0dd", | |
122 | "powderblue":"b0e0e6", | |
123 | "purple":"800080", | |
124 | "red":"ff0000", | |
125 | "rosybrown":"bc8f8f", | |
126 | "royalblue":"4169e1", | |
127 | "saddlebrown":"8b4513", | |
128 | "salmon":"fa8072", | |
129 | "sandybrown":"f4a460", | |
130 | "seagreen":"2e8b57", | |
131 | "seashell":"fff5ee", | |
132 | "sienna":"a0522d", | |
133 | "silver":"c0c0c0", | |
134 | "skyblue":"87ceeb", | |
135 | "slateblue":"6a5acd", | |
136 | "slategray":"708090", | |
137 | "slategrey":"708090", | |
138 | "snow":"fffafa", | |
139 | "springgreen":"00ff7f", | |
140 | "steelblue":"4682b4", | |
141 | "tan":"d2b48c", | |
142 | "teal":"008080", | |
143 | "thistle":"d8bfd8", | |
144 | "tomato":"ff6347", | |
145 | "turquoise":"40e0d0", | |
146 | "violet":"ee82ee", | |
147 | "wheat":"f5deb3", | |
148 | "white":"ffffff", | |
149 | "whitesmoke":"f5f5f5", | |
150 | "yellow":"ffff00", | |
151 | "yellowgreen":"9acd32" | |
152 | } | |
153 | ||
154 | class ColorScale: | |
155 | def __init__(self, min, max): | |
156 | self.min = float(min) | |
157 | self.max = float(max) | |
158 | ||
159 | def range(self, color1, color2): | |
160 | def HSV(color): | |
161 | color_hex = simple_colors[color] | |
162 | - | colortuple = tuple([float(int(color_hex[i:i+2], 16))/255. \ |
162 | + | colorlist = [float(int(color_hex[i:i+2], 16))/255. \ |
163 | - | for i in range(0, len(color_hex), 2)]) |
163 | + | for i in range(0, len(color_hex), 2)] |
164 | - | return rgb_to_hsv(*colortuple) |
164 | + | return rgb_to_hsv(*colorlist) |
165 | - | #print HSV(color1), HSV(color2) |
165 | + | |
166 | scale = (float(value) - self.min)/(self.max - self.min) | |
167 | - | scaled = (float(value) - self.min)/(self.max - self.min) |
167 | + | |
168 | c2 = HSV(color2) | |
169 | if c2[0] > c1[0]: | |
170 | if (c2[0] - c1[0]) > 0.5: | |
171 | h = c1[0] - scale*(1.-c2[0]+c1[0]) | |
172 | - | h = c1[0] - scaled*(1.-c2[0]+c1[0]) |
172 | + | |
173 | h += 1.0 | |
174 | else: | |
175 | h = c1[0] + scale*(c2[0]-c1[0]) | |
176 | - | h = c1[0] + scaled*(c2[0]-c1[0]) |
176 | + | |
177 | if (c1[0] - c2[0]) > 0.5: | |
178 | h = c1[0] + scale*(1.-c1[0]+c2[0]) | |
179 | - | h = c1[0] + scaled*(1.-c1[0]+c2[0]) |
179 | + | |
180 | h -= 1.0 | |
181 | else: | |
182 | h = c1[0] - scale*(c1[0]-c2[0]) | |
183 | - | h = c1[0] - scaled*(c1[0]-c2[0]) |
183 | + | s = c1[1]+(c2[1]-c1[1])*scale |
184 | - | s = c1[1]+(c2[1]-c1[1])*scaled |
184 | + | v = c1[2]+(c2[2]-c1[2])*scale |
185 | - | v = c1[2]+(c2[2]-c1[2])*scaled |
185 | + | return tuple(map(lambda x: 255.*x, hsv_to_rgb(h, s, v))) |
186 | - | hsv = (h, s, v) |
186 | + |