hex <-> RGB <-> HSV colori conversione dello spazio con Python
-
02-10-2019 - |
Domanda
questo progetto uso colorsys di Python per convertire RGB per HSV viceversa essere in grado di manipolare saturazione e leggerezza, ma ho notato che alcuni colori produce falsi risultati.
Ad esempio, se prendo tutti i colori primari non c'è nessun problema:
Tuttavia, se ho scelto un colore RGB a caso e convertirlo in HSV, io ottiene a volte risultati falsi.
A volte questi risultati falsi si verifica quando ho aumentare o diminuire la luminosità o la saturazione di un colore.
In questo esempio leggerezza 10%, 20% e 100% di saturazione sono falsi:
Non sono del tutto sicuro perché succede né come dovrei risolvere questo problema ..
Soluzione
Il problema è nel codice 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
Quando il valore è inferiore a 16, si sta duplicando per ottenere il valore, in altre parole, moltiplicandolo per 17. Si vuole in questo modo:
def dec2hex(d):
"""return a two character hexadecimal string representation of integer d"""
return "%02X" % d