HEX <-> RGB <-> Конверсия цветного пространства HSV с Python
-
02-10-2019 - |
Вопрос
Для этот проект Я использую цвета Python для преобразования RGB на наоборот HSV наоборот, чтобы иметь возможность манипулировать насыщенностью и легкостью, но я заметил, что некоторые цвета выходят поддельные результаты.
Например, если я принимаю какие-либо основные цвета, нет проблем:
Однако, если я выбрал случайный цвет RGB и преобразую его в HSV, я когда-нибудь получает фигурные результаты.
Иногда эти божественные результаты возникают, когда я увеличиваю или уменьшающую свет или насыщение цвета.
В этом примере легкость 10%, 20% и насыщенность 100% являются поддельными:
Я не совсем уверен, почему это происходит, ни как я должен исправить это ..
Решение
Проблема в вашем коде Dec2Hex:
def dec2hex(d):
"""return a two character hexadecimal string representation of integer d"""
r = "%X" % d
return r if len(r) > 1 else r+r
Когда ваше значение составляет менее 16, вы дублируете его, чтобы получить значение, другими словами, умножая его на 17. Вы хотите это:
def dec2hex(d):
"""return a two character hexadecimal string representation of integer d"""
return "%02X" % d