Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from colorsys import *
- import math
- simple_colors = {
- "aliceblue":"f0f8ff",
- "antiquewhite":"faebd7",
- "aqua":"00ffff",
- "aquamarine":"7fffd4",
- "azure":"f0ffff",
- "beige":"f5f5dc",
- "bisque":"ffe4c4",
- "black":"000000",
- "blanchedalmond":"ffebcd",
- "blue":"0000ff",
- "blueviolet":"8a2be2",
- "brown":"a52a2a",
- "burlywood":"deb887",
- "cadetblue":"5f9ea0",
- "chartreuse":"7fff00",
- "chocolate":"d2691e",
- "coral":"ff7f50",
- "cornflowerblue":"6495ed",
- "cornsilk":"fff8dc",
- "crimson":"dc143c",
- "cyan":"00ffff",
- "darkblue":"00008b",
- "darkcyan":"008b8b",
- "darkgoldenrod":"b8860b",
- "darkgray":"a9a9a9",
- "darkgreen":"006400",
- "darkgrey":"a9a9a9",
- "darkkhaki":"bdb76b",
- "darkmagenta":"8b008b",
- "darkolivegreen":"556b2f",
- "darkorange":"ff8c00",
- "darkorchid":"9932cc",
- "darkred":"8b0000",
- "darksalmon":"e9967a",
- "darkseagreen":"8fbc8f",
- "darkslateblue":"483d8b",
- "darkslategray":"2f4f4f",
- "darkslategrey":"2f4f4f",
- "darkturquoise":"00ced1",
- "darkviolet":"9400d3",
- "deeppink":"ff1493",
- "deepskyblue":"00bfff",
- "dimgray":"696969",
- "dimgrey":"696969",
- "dodgerblue":"1e90ff",
- "firebrick":"b22222",
- "floralwhite":"fffaf0",
- "forestgreen":"228b22",
- "fuchsia":"ff00ff",
- "gainsboro":"dcdcdc",
- "ghostwhite":"f8f8ff",
- "gold":"ffd700",
- "goldenrod":"daa520",
- "gray":"808080",
- "green":"008000",
- "greenyellow":"adff2f",
- "grey":"808080",
- "honeydew":"f0fff0",
- "hotpink":"ff69b4",
- "indianred":"cd5c5c",
- "indigo":"4b0082",
- "ivory":"fffff0",
- "khaki":"f0e68c",
- "lavender":"e6e6fa",
- "lavenderblush":"fff0f5",
- "lawngreen":"7cfc00",
- "lemonchiffon":"fffacd",
- "lightblue":"add8e6",
- "lightcoral":"f08080",
- "lightcyan":"e0ffff",
- "lightgoldenrodyellow":"fafad2",
- "lightgray":"d3d3d3",
- "lightgreen":"90ee90",
- "lightgrey":"d3d3d3",
- "lightpink":"ffb6c1",
- "lightsalmon":"ffa07a",
- "lightseagreen":"20b2aa",
- "lightskyblue":"87cefa",
- "lightslategray":"778899",
- "lightslategrey":"778899",
- "lightsteelblue":"b0c4de",
- "lightyellow":"ffffe0",
- "lime":"00ff00",
- "limegreen":"32cd32",
- "linen":"faf0e6",
- "magenta":"ff00ff",
- "maroon":"800000",
- "mediumaquamarine":"66cdaa",
- "mediumblue":"0000cd",
- "mediumorchid":"ba55d3",
- "mediumpurple":"9370db",
- "mediumseagreen":"3cb371",
- "mediumslateblue":"7b68ee",
- "mediumspringgreen":"00fa9a",
- "mediumturquoise":"48d1cc",
- "mediumvioletred":"c71585",
- "midnightblue":"191970",
- "mintcream":"f5fffa",
- "mistyrose":"ffe4e1",
- "moccasin":"ffe4b5",
- "navajowhite":"ffdead",
- "navy":"000080",
- "oldlace":"fdf5e6",
- "olive":"808000",
- "olivedrab":"6b8e23",
- "orange":"ffa500",
- "orangered":"ff4500",
- "orchid":"da70d6",
- "palegoldenrod":"eee8aa",
- "palegreen":"98fb98",
- "paleturquoise":"afeeee",
- "palevioletred":"db7093",
- "papayawhip":"ffefd5",
- "peachpuff":"ffdab9",
- "peru":"cd853f",
- "pink":"ffc0cb",
- "plum":"dda0dd",
- "powderblue":"b0e0e6",
- "purple":"800080",
- "red":"ff0000",
- "rosybrown":"bc8f8f",
- "royalblue":"4169e1",
- "saddlebrown":"8b4513",
- "salmon":"fa8072",
- "sandybrown":"f4a460",
- "seagreen":"2e8b57",
- "seashell":"fff5ee",
- "sienna":"a0522d",
- "silver":"c0c0c0",
- "skyblue":"87ceeb",
- "slateblue":"6a5acd",
- "slategray":"708090",
- "slategrey":"708090",
- "snow":"fffafa",
- "springgreen":"00ff7f",
- "steelblue":"4682b4",
- "tan":"d2b48c",
- "teal":"008080",
- "thistle":"d8bfd8",
- "tomato":"ff6347",
- "turquoise":"40e0d0",
- "violet":"ee82ee",
- "wheat":"f5deb3",
- "white":"ffffff",
- "whitesmoke":"f5f5f5",
- "yellow":"ffff00",
- "yellowgreen":"9acd32"
- }
- class ColorScale:
- def __init__(self, min, max):
- self.min = float(min)
- self.max = float(max)
- def range(self, color1, color2):
- def HSV(color):
- color_hex = simple_colors[color]
- colorlist = [float(int(color_hex[i:i+2], 16))/255. \
- for i in range(0, len(color_hex), 2)]
- return rgb_to_hsv(*colorlist)
- def evaluate(value):
- scale = (float(value) - self.min)/(self.max - self.min)
- c1 = HSV(color1)
- c2 = HSV(color2)
- if c2[0] > c1[0]:
- if (c2[0] - c1[0]) > 0.5:
- h = c1[0] - scale*(1.-c2[0]+c1[0])
- if h < 0.0:
- h += 1.0
- else:
- h = c1[0] + scale*(c2[0]-c1[0])
- else:
- if (c1[0] - c2[0]) > 0.5:
- h = c1[0] + scale*(1.-c1[0]+c2[0])
- if h > 1.0:
- h -= 1.0
- else:
- h = c1[0] - scale*(c1[0]-c2[0])
- s = c1[1]+(c2[1]-c1[1])*scale
- v = c1[2]+(c2[2]-c1[2])*scale
- return tuple(map(lambda x: 255.*x, hsv_to_rgb(h, s, v)))
- return lambda y: '%02x%02x%02x' % evaluate(y)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement