diff --git a/gui/utils/colorUtils.py b/gui/utils/colorUtils.py index cf476722b..8ce98803a 100644 --- a/gui/utils/colorUtils.py +++ b/gui/utils/colorUtils.py @@ -1,6 +1,7 @@ import wx #Brightens a color (wx.Colour), factor = [0,1] + def BrightenColor(color, factor): r,g,b = color @@ -15,6 +16,7 @@ def BrightenColor(color, factor): return wx.Colour(r,g,b,a) #Darkens a color (wx.Colour), factor = [0, 1] + def DarkenColor(color, factor): bkR ,bkG , bkB = color @@ -33,6 +35,32 @@ def DarkenColor(color, factor): return wx.Colour(r, g, b, alpha) + +#Calculates the brightness of a color, different options + +def GetBrightnessO1(color): + r,g,b = color + return (0.299*r + 0.587*g + 0.114*b) + +def GetBrightnessO2(color): + r,g,b = color + return math.sqrt( 0.241 * r * r + 0.691 * g * g + 0.068 * b * b ) + + + +#Calculates a suitable color based on original color (wx.Colour), its brightness, a factor=[0,1] (darken/brighten by factor depending on calculated brightness) + +def GetSuitableColor(color, factor): + + brightness = GetBrightnessO2(color) + + if brightness >127: + return DarkenColor(color, factor) + else: + return BrightenColor(color, factor) + + + #Calculates the color between a given start and end colors, delta = [0,1] #Colors are wx.Colour objects @@ -47,4 +75,4 @@ def CalculateTransitionColor(startColor, endColor, delta): tG = sG + (eG - sG) * delta tB = sB + (eB - sB) * delta - return wx.Colour(tR, tG, tB, (alphaS + alphaE)/2) \ No newline at end of file + return wx.Colour(tR, tG, tB, (alphaS + alphaE)/2)