summaryrefslogtreecommitdiffstats
path: root/src/curve.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/curve.py')
-rw-r--r--src/curve.py26
1 files changed, 19 insertions, 7 deletions
diff --git a/src/curve.py b/src/curve.py
index d3e2a2d..cc3de36 100644
--- a/src/curve.py
+++ b/src/curve.py
@@ -175,15 +175,27 @@ def temperature(temperature, algorithm, linear_rgb = True):
r_curve[i], g_curve[i], b_curve[i] = R, G, B
-def divide_by_maximum():
+def divide_by_maximum(rgb):
'''
- Divide all colour components by the value of the most prominent colour component for each colour
+ Divide all colour components by the value of the most prominent colour component
+
+ @param rgb:[float, float, float] The three colour components
+ @return :[float, float, float] The three colour components divided by the maximum
+ '''
+ m = max([abs(x) for x in rgb])
+ if m != 0:
+ return [x / m for x in rgb]
+ return rgb
+
+
+def clip_whitepoint(rgb):
+ '''
+ Clip all colour components to fit inside [0, 1]
+
+ @param rgb:[float, float, float] The three colour components
+ @return :[float, float, float] The three colour components clipped
'''
- for i in range(i_size):
- m = max([abs(x) for x in (r_curve[i], g_curve[i], b_curve[i])])
- if m != 0:
- for curve in (r_curve, g_curve, b_curve):
- curve[i] /= m
+ return [min(max(0, x), 1) for x in rgb]
def rgb_contrast(r, g, b):