|
import colorsys
|
|
|
|
|
|
def hex_to_hsv(hex_color):
|
|
hex_color = hex_color.lstrip('#')
|
|
r, g, b = tuple(int(hex_color[i:i+2], 16) / 255.0 for i in (0, 2, 4))
|
|
|
|
h, s, v = colorsys.rgb_to_hsv(r, g, b)
|
|
|
|
hue = h * 360
|
|
|
|
saturation = s
|
|
value = v
|
|
|
|
return hue, saturation, value
|
|
|
|
|
|
class RGB_HexToHSV:
|
|
@classmethod
|
|
def INPUT_TYPES(s):
|
|
return {"required": {
|
|
"rgb_hex": ("STRING", {"defaultInput": True}),
|
|
},
|
|
}
|
|
|
|
RETURN_TYPES = ("FLOAT", "FLOAT", "FLOAT")
|
|
RETURN_NAMES = ("hue", "saturation", "value")
|
|
FUNCTION = "doit"
|
|
CATEGORY = "InspirePack/Util"
|
|
|
|
def doit(self, rgb_hex):
|
|
return hex_to_hsv(rgb_hex)
|
|
|
|
|
|
NODE_CLASS_MAPPINGS = {
|
|
"RGB_HexToHSV //Inspire": RGB_HexToHSV,
|
|
}
|
|
|
|
NODE_DISPLAY_NAME_MAPPINGS = {
|
|
"RGB_HexToHSV //Inspire": "RGB Hex To HSV (Inspire)",
|
|
}
|
|
|