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 ..

È stato utile?

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top