Source code for bibliopixel.colors.gamma

[docs]class Gamma(object): """ Compute a fixed gamma table with 256 entries. """ def __init__(self, gamma=1.0, offset=0, lower_bound=0): """ :param float gamma: the root for gamma computation :param float offset: an offset added to the result :param int lower_bound: The lowest possible output value - the highest is always 255. """ self.gamma = gamma self.offset = offset self.lower_bound = lower_bound width = 255 - lower_bound def gam(i): return int(lower_bound + pow(i / 255, gamma) * width + offset) self.table = tuple(gam(i) for i in range(256))
[docs] def get(self, i): """ :returns: The gamma table entry :param int i: the index into the table """ return self.table[max(0, min(255, int(i)))]
# From https://github.com/scottjgibson/PixelPi/blob/master/pixelpi.py APA102 = Gamma(gamma=2.5, offset=0.5) WS2801 = SM16716 = Gamma(gamma=2.5) NONE = DEFAULT = Gamma() # For when you need no correction # From http://rgb-123.com/ws2812-color-output/ WS2812B = NEOPIXEL = WS2812 = Gamma(gamma=1 / 0.45) # Color calculations from # http://learn.adafruit.com/light-painting-with-raspberry-pi LPD8806 = Gamma(gamma=2.5, offset=0.5, lower_bound=128)