Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def convert_to_rgb(minimum, maximum, value):
- minimum, maximum = float(minimum), float(maximum)
- halfmax = (minimum + maximum) / 2
- if minimum <= value <= halfmax:
- r = 0
- g = int( 255./(halfmax - minimum) * (value - minimum))
- b = int( 255. + -255./(halfmax - minimum) * (value - minimum))
- return (r,g,b)
- elif halfmax < value <= maximum:
- r = int( 255./(maximum - halfmax) * (value - halfmax))
- g = int( 255. + -255./(maximum - halfmax) * (value - halfmax))
- b = 0
- return (r,g,b)
- def rgb(minimum, maximum, value):
- minimum, maximum = float(minimum), float(maximum)
- ratio = 2 * (value-minimum) / (maximum - minimum)
- b = int(max(0, 255*(1 - ratio)))
- r = int(max(0, 255*(ratio - 1)))
- g = 255 - b - r
- return r, g, b
- import sys
- EPSILON = sys.float_info.epsilon # smallest possible difference
- def convert_to_rgb(minval, maxval, val, colors):
- fi = float(val-minval) / float(maxval-minval) * (len(colors)-1)
- i = int(fi)
- f = fi - i
- if f < EPSILON:
- return colors[i]
- else:
- (r1, g1, b1), (r2, g2, b2) = colors[i], colors[i+1]
- return int(r1 + f*(r2-r1)), int(g1 + f*(g2-g1)), int(b1 + f*(b2-b1))
- if __name__ == '__main__':
- minval, maxval = 1, 3
- steps = 10
- delta = float(maxval-minval) / steps
- colors = [(0, 0, 255), (0, 255, 0), (255, 0, 0)] # [BLUE, GREEN, RED]
- print(' Val R B G')
- for i in range(steps+1):
- val = minval + i*delta
- r, g, b = convert_to_rgb(minval, maxval, val, colors)
- print('{:.3f} -> ({:3d}, {:3d}, {:3d})'.format(val, r, g, b))
- r = [red_curve_1, red_curve_2][value>=halfmax]
- g = [green_curve_1, green_curve_2][value>=halfmax]
- b = [blue_curve_1, blue_curve_2][value>=halfmax]
- colorsys.hsv_to_rgb(value, 1, 1)
Add Comment
Please, Sign In to add comment