2010-08-30 10 views
0

Pour this project J'utilise les colorsys de Python pour convertir RVB HSV vice versa pour pouvoir manipuler la saturation et la légèreté, mais je remarque que certaines couleurs donne des résultats faux.hex <-> RGB <-> HSV de conversion de l'espace couleur avec Python

Par exemple, si je prends des couleurs primaires il n'y a pas de problème:

Cependant si je choisi une couleur RVB aléatoire et le convertir à HSV, j'obtient parfois des résultats faux.

Parfois, ces résultats faux se produisent lorsque j'augmente ou diminue la luminosité ou la saturation d'une couleur.

Dans cet exemple, la légèreté 10%, 20% et 100% de saturation sont faux:

Je ne suis pas sûr de savoir pourquoi il arrive, ni comment je dois résoudre ce problème ..

+0

Pourriez-vous publier votre code? –

+0

Vos liens image sont cassés :( – Tony

Répondre

2

le problème est dans votre code 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 

Lorsque votre valeur est inférieure à 16, vous êtes le dupliquer pour obtenir la valeur, autrement dit, en le multipliant par 1 7. Vous le souhaitez:

def dec2hex(d): 
    """return a two character hexadecimal string representation of integer d""" 
    return "%02X" % d 
+0

Merci beaucoup :) –

Questions connexes