Guest User

Untitled

a guest
Apr 24th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  1. def convert_to_rgb(minimum, maximum, value):
  2. minimum, maximum = float(minimum), float(maximum)
  3. halfmax = (minimum + maximum) / 2
  4. if minimum <= value <= halfmax:
  5. r = 0
  6. g = int( 255./(halfmax - minimum) * (value - minimum))
  7. b = int( 255. + -255./(halfmax - minimum) * (value - minimum))
  8. return (r,g,b)
  9. elif halfmax < value <= maximum:
  10. r = int( 255./(maximum - halfmax) * (value - halfmax))
  11. g = int( 255. + -255./(maximum - halfmax) * (value - halfmax))
  12. b = 0
  13. return (r,g,b)
  14.  
  15. def rgb(minimum, maximum, value):
  16. minimum, maximum = float(minimum), float(maximum)
  17. ratio = 2 * (value-minimum) / (maximum - minimum)
  18. b = int(max(0, 255*(1 - ratio)))
  19. r = int(max(0, 255*(ratio - 1)))
  20. g = 255 - b - r
  21. return r, g, b
  22.  
  23. import sys
  24. EPSILON = sys.float_info.epsilon # smallest possible difference
  25.  
  26. def convert_to_rgb(minval, maxval, val, colors):
  27. fi = float(val-minval) / float(maxval-minval) * (len(colors)-1)
  28. i = int(fi)
  29. f = fi - i
  30. if f < EPSILON:
  31. return colors[i]
  32. else:
  33. (r1, g1, b1), (r2, g2, b2) = colors[i], colors[i+1]
  34. return int(r1 + f*(r2-r1)), int(g1 + f*(g2-g1)), int(b1 + f*(b2-b1))
  35.  
  36. if __name__ == '__main__':
  37. minval, maxval = 1, 3
  38. steps = 10
  39. delta = float(maxval-minval) / steps
  40. colors = [(0, 0, 255), (0, 255, 0), (255, 0, 0)] # [BLUE, GREEN, RED]
  41. print(' Val R B G')
  42. for i in range(steps+1):
  43. val = minval + i*delta
  44. r, g, b = convert_to_rgb(minval, maxval, val, colors)
  45. print('{:.3f} -> ({:3d}, {:3d}, {:3d})'.format(val, r, g, b))
  46.  
  47. r = [red_curve_1, red_curve_2][value>=halfmax]
  48. g = [green_curve_1, green_curve_2][value>=halfmax]
  49. b = [blue_curve_1, blue_curve_2][value>=halfmax]
  50.  
  51. colorsys.hsv_to_rgb(value, 1, 1)
Add Comment
Please, Sign In to add comment