hexadecimal <-> RGB <-> HSV conversión del espacio de color con Python
-
02-10-2019 - |
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 ..
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