View difference between Paste ID: sa1MuRaS and 0Zhdj2JA
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+