diff options
author | rcoh <rcoh@mit.edu> | 2011-02-01 23:14:12 -0500 |
---|---|---|
committer | rcoh <rcoh@mit.edu> | 2011-02-01 23:14:12 -0500 |
commit | 5a97e7548b0ec44f0d61a724903748197e69df7c (patch) | |
tree | 7bb6b8ea7e488949eeb16ae18b0ad2230f1f7c9b /util/ColorOps.py | |
parent | 082e4b0c53123dd377da148541f7d98516716862 (diff) | |
parent | 482a94fd48627153b923931d6ff21ebf57fad6f7 (diff) |
Merge branch 'osc' of github.com:rcoh/SmootLight into osc
Diffstat (limited to 'util/ColorOps.py')
-rw-r--r-- | util/ColorOps.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/util/ColorOps.py b/util/ColorOps.py index 143444f..4b1162a 100644 --- a/util/ColorOps.py +++ b/util/ColorOps.py @@ -1,14 +1,21 @@ import random +import colorsys from util.TimeOps import Stopwatch def randomColor(): return [random.randint(0,255) for i in range(3)] + def chooseRandomColor(colorList): + """Given a list of colors, pick one at random""" return random.choice(colorList) def safeColor(c): + """Ensures that a color is valid""" c[0] = c[0] if c[0] < 255 else 255 c[1] = c[1] if c[1] < 255 else 255 c[2] = c[2] if c[2] < 255 else 255 + + return c + def combineColors(colors): result = [0,0,0] for c in colors: @@ -16,5 +23,20 @@ def combineColors(colors): result[1] += c[1] result[2] += c[2] return safeColor(result) + def multiplyColor(color, percent): return safeColor([channel*(percent) for channel in color]) + +def floatToIntColor(rgb): + rgb[0] = int(rgb[0]*256 + .5) + rgb[1] = int(rgb[1]*256 + .5) + rgb[2] = int(rgb[2]*256 + .5) + return safeColor(rgb) + +def randomBrightColor(): + hue = random.random() + sat = random.random()/2.0 + .5 + val = 1.0 + hue, sat, val = colorsys.hsv_to_rgb(hue, sat, val) + ret = [hue, sat, val] + return floatToIntColor(ret) |