24 lines
596 B
Python
Executable File
24 lines
596 B
Python
Executable File
#!/usr/bin/python3
|
|
"""Calculates a gamma correction curve to store
|
|
in PROGMEM for a NeoPixel"""
|
|
|
|
FACTOR = 2.8 # correction factor
|
|
MAX_IN = 255 # top end of INPUT range
|
|
MAX_OUT = 255 # top end of OUTPUT range
|
|
|
|
print('{', end='')
|
|
for index in range(MAX_IN + 1):
|
|
if index > 0:
|
|
print(',', end='')
|
|
if index & 15 == 0:
|
|
print(' \\')
|
|
if index == 0:
|
|
val = 0
|
|
elif index == MAX_IN:
|
|
val = MAX_IN
|
|
else:
|
|
val = (index / MAX_IN) ** FACTOR * MAX_OUT + 0.5
|
|
val = - (- val // 1) # round up
|
|
print('{0:>3d}'.format(int(val)), end='')
|
|
print('}')
|