summaryrefslogtreecommitdiffstats
path: root/src/__main__.py
diff options
context:
space:
mode:
authorMattias Andrée <maandree@operamail.com>2014-02-12 23:13:19 +0100
committerMattias Andrée <maandree@operamail.com>2014-02-12 23:13:19 +0100
commitf1b23c7f56732d58e34ee5b2f1c179d191aa6b5c (patch)
treeaa45c08b7f56f1eaa163a3621f42e352d2d002e7 /src/__main__.py
parentbrightness gamma and contrast support (diff)
downloadblueshift-f1b23c7f56732d58e34ee5b2f1c179d191aa6b5c.tar.gz
blueshift-f1b23c7f56732d58e34ee5b2f1c179d191aa6b5c.tar.bz2
blueshift-f1b23c7f56732d58e34ee5b2f1c179d191aa6b5c.tar.xz
doc
Signed-off-by: Mattias Andrée <maandree@operamail.com>
Diffstat (limited to 'src/__main__.py')
-rwxr-xr-xsrc/__main__.py33
1 files changed, 32 insertions, 1 deletions
diff --git a/src/__main__.py b/src/__main__.py
index 257ed3e..50c8763 100755
--- a/src/__main__.py
+++ b/src/__main__.py
@@ -22,28 +22,60 @@ b_curve = [i / 255 for i in range(256)]
def curves(r, g, b):
+ '''
+ Generate a tuple of curve–parameter pairs
+
+ @param r The red parameter
+ @param g The green parameter
+ @param b The blue parameter
+ @return ((r_curve, r), (g_curve, g), (b_curve, b))
+ '''
return ((r_curve, r), (g_curve, g), (b_curve, b))
def contrast(r, g, b):
+ '''
+ Apply contrast correction on the colour curves
+
+ @param r:float The contrast parameter for the red curve
+ @param g:float The contrast parameter for the green curve
+ @param b:float The contrast parameter for the blue curve
+ '''
for (curve, level) in curves(r, g, b):
if not level == 1.0:
for i in range(256):
curve[i] = (curve[i] - 0.5) * level + 0.5
def brightness(r, g, b):
+ '''
+ Apply brightness correction on the colour curves
+
+ @param r:float The brightness parameter for the red curve
+ @param g:float The brightness parameter for the green curve
+ @param b:float The brightness parameter for the blue curve
+ '''
for (curve, level) in curves(r, g, b):
if not level == 1.0:
for i in range(256):
curve[i] *= level
def gamma(r, g, b):
+ '''
+ Apply gamma correction on the colour curves
+
+ @param r:float The gamma parameter for the red curve
+ @param g:float The gamma parameter for the green curve
+ @param b:float The gamma parameter for the blue curve
+ '''
for (curve, level) in curves(r, g, b):
if not level == 1.0:
for i in range(256):
curve[i] **= level
def clip():
+ '''
+ Clip all values belowed the actual minimum and above actual maximums
+ '''
for curve in (r_curve, g_curve, b_curve):
for i in range(256):
curve[i] = min(max(0.0, curve[i]), 1.0)
@@ -52,7 +84,6 @@ def clip():
contrast(1.0, 1.0, 1.0)
brightness(1.0, 1.0, 1.0)
gamma(1.0, 1.0, 1.0)
-temperature(1.0, 1.0, 1.0)
clip()