Added GetBrightness(O1/O2), GetSuitableColor methods in utils.colorUtils

This commit is contained in:
HomeWorld
2010-12-08 16:59:08 +02:00
parent 6a7d43cb84
commit 12976417e7

View File

@@ -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)
return wx.Colour(tR, tG, tB, (alphaS + alphaE)/2)