22 lines
702 B
Python
22 lines
702 B
Python
# Copyright (c) 2023 Julian Müller (ChaoticByte)
|
|
|
|
|
|
from colorsys import rgb_to_hsv as _rgb_to_hsv
|
|
|
|
|
|
def rgb_to_hsv(r:int, g:int, b:int) -> tuple:
|
|
'''Convert RGB colors `(255, 220, 100)` to Philips Hue's hue, saturation and brightness values `(8456, 154, 254)` imprecisely'''
|
|
assert type(r) == int
|
|
assert type(g) == int
|
|
assert type(b) == int
|
|
r_ = r / 255.0
|
|
g_ = g / 255.0
|
|
b_ = b / 255.0
|
|
h_, s_, v_ = _rgb_to_hsv(r_, g_, b_)
|
|
hsv = (round(h_ * 65535.0), round(s_ * 254.0), round(v_ * 254.0))
|
|
return hsv
|
|
|
|
def kelvin_to_mired(kelvin:int):
|
|
'''Convert the color temperature from Kelvin to Mired'''
|
|
assert type(kelvin) == int
|
|
return round(1000000.0/kelvin)
|