Projekt Litsimaja - Lapikute tagatoa seintele programmeeritavad ARGB ribad
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

52 lines
1.5 KiB

Color = lambda r, g, b: (r << 16) | (g << 8) | b
def Color_to_list(color):
rgb = [(color >> 16) & 255, (color >> 8) & 255, color & 255]
w = (color >> 24) & 255
if w:
rgb.append(w)
return rgb
def Color_to_hex(color):
s = [(color >> 16) & 255, (color >> 8) & 255, color & 255]
return "#"+''.join(map(lambda y: ("0" + hex(int(y))[2:])[-2:], s))
def Color_to_rgb(color):
return (color >> 16) & 255, (color >> 8) & 255, color & 255
def hex_to_rgb(value):
value = value.lstrip('#') if value[0] == "#" else value
lv = len(value)
return [int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3)]
def to_Color(value):
if type(value) == str:
r, g, b = hex_to_rgb(value)
return Color(r, g, b)
if type(value) == int:
if 0 <= value <= 16777215:
return value
else:
raise ValueError("RGB Int exceeded the lower and upper limits")
if type(value) == list or type(value) == tuple:
out = []
for n, code in enumerate(value):
if not str(code).isnumeric():
raise ValueError("RGB color must be numeric")
if n > 4:
raise ValueError("RGB contains more than 4 values")
_code = int(code)
if _code < 0:
print(f"RGB value under 0")
out.append(0)
elif _code > 255:
print(f"RGB value over 255")
out.append(255)
else:
out.append(_code)
return Color(out[0], out[1], out[2])