diff --git a/effects.py b/effects.py index ab69f07..165acb0 100644 --- a/effects.py +++ b/effects.py @@ -54,13 +54,17 @@ def black(framecount, index, target): target[1] = 0 target[2] = 0 -def adjust_saturation(framecount, index, target, params): - factor = params['factor'] +def adjust_hsv(framecount, index, target, params): + factor_s = params['factor_s'] + factor_v = params['factor_v'] + delta_h = params['delta_h'] + delta_s = params['delta_s'] + delta_v = params['delta_v'] rgb = sRGBColor(target[0], target[1], target[2], True) hsv = convert_color(rgb, HSVColor) - hsv.hsv_s = min(hsv.hsv_s*factor,1) - print(params) - print(hsv) + hsv.hsv_h = min(hsv.hsv_h+delta_h, 360) + hsv.hsv_s = min(hsv.hsv_s*factor_s+delta_s,1) + hsv.hsv_v = min(hsv.hsv_v*factor_v+delta_v,1) hsv_to_target(hsv, target) def rgb(framecount, index, target, params): diff --git a/processor.py b/processor.py index 7cb6a95..a7920c1 100644 --- a/processor.py +++ b/processor.py @@ -40,14 +40,41 @@ AVAILABLE_EFFECTS = [ "params": None }, { - "function": adjust_saturation, + "function": adjust_hsv, "params": { - "factor": { + "factor_s": { "type": "slider", "min": 0, "max": 1, "default": 1, "step": 0.01 + }, + "factor_v": { + "type": "slider", + "min": 0, + "max": 1, + "default": 1, + "step": 0.01 + }, + "delta_h": { + "type": "slider", + "min": 0, + "max": 360, + "default": 0, + }, + "delta_s": { + "type": "slider", + "min": 0, + "max": 1, + "default": 0, + "step": 0.01 + }, + "delta_v": { + "type": "slider", + "min": 0, + "max": 1, + "default": 0, + "step": 0.01 } } },