Pregunta

En este proyecto utilizo colorsys de Python para convertir RGB a HSV viceversa ser capaz de manipular saturación y luminosidad, pero me di cuenta de que algunos colores produce falsos resultados.

Por ejemplo, si tomo cualquier colores primarios no hay problema:

Sin embargo, si he elegido un color RGB al azar y lo convierten en VHS, que en algún momento se obtienen resultados falsos.

A veces, estos resultados falsos se produce cuando aumentar o disminuir la luminosidad o la saturación de un color.

En este ejemplo ligereza 10%, 20% y la saturación de 100% son falsos:

No estoy muy seguro de por qué ocurre ni cómo debería solucionar este problema ..

¿Fue útil?

Solución

El problema está en su código 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

Cuando su valor es inferior a 16, que está duplicarla para obtener el valor, en otras palabras, multiplicarlo por 17. Quiere esto:

def dec2hex(d):
    """return a two character hexadecimal string representation of integer d"""
    return "%02X" % d
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top