Сия библиотека поможет перевести цифровые цвета RGB из шестнадцатеричной записи вида #XXXXXX в десятичную вида RGB(XXX,XXX,XXX) и обратно. В RGB можно указывать значения числами (по умолчанию) и процентами (нужно передать true вторым аргументом). Если на входе окажется значение RGBa - не страшно, альфу библиотека отрежет. На входе и выходе - строка.
Автоматическое определение направления есть, определяется по наличию # во входных данных.
Помимо базовой функциональности в библиотеке есть и функция get_cowb, возвращающая значение контрастного цвета для переданного образца. Поможет в том случае, если образец будет фоном, поверх коего нужно что-то разборчиво написать. На выходе - значение черного или белого цвета, по умолчанию в том формате, в котором передан образец, но можно передать вторым аргументом и иной формат по желанию: hex, rgb или rgb_percent - полагаю, суть значений вполне очевидна. Ежели передать вторым аргументом что-то, но иное - будет возвращен результат в виде текста black или white - что может быть полезно порою.
Варианты использования:
tzwilight.hex2rgb("#XXXXXX")
tzwilight.auto("#XXXXXX", true)
tzwilight.auto("RGB(XXX,XXX,XXX)")
tzwilight.rgb2hex("RGB(XX%,XX%,XX%)", true)
tzwilight.get_cowb("#XXXXXX")
tzwilight.get_cowb("RGB(XXX,XXX,XXX)", "rgb_percent")
Ряд проверок корректности передаваемых аргументов имеется. При этом библиотека вельми круто удаляет ненужное, так что даже странные записи с лишними символами обычно пройдут. Впрочем, конечно, злоупотреблять наркоманскими входными данными не стоит.
Примеры:
tzwilight.auto("#FF8799") // RGB(255,135,153)
tzwilight.hex2rgb("#079", true) // RGB(0%,47%,60%)
tzwilight.rgb2hex("RGB(0,255,0)") // #00FF00
tzwilight.rgb2hex("RGBa(111,255,88,0.7)") // #6FFF58
tzwilight.auto("RGB(66%,55%,44%)", true) // #A88C70
tzwilight.rgb2hex("RGB jj (0, 2 55, 0)____;") // #00FF00
tzwilight.get_cowb("#979") // #000000
tzwilight.get_cowb("RGB(10%,40%,99%)", "hex") // #FFFFFF
tzwilight.get_cowb("RGB(0,0,102)", "ololoepty") // white