HEX <-> RGB <-> Конверсия цветного пространства HSV с Python

StackOverflow https://stackoverflow.com/questions/3597610

  •  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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top